【字符串】刷题
创始人
2025-05-30 04:20:41

P4173残缺的字符串

心得:

这道题,我觉得是不难的,代码逻辑很清晰,但是提交就是有问题

最后发现两个问题:

  1. scanf输入字符后要用getchar() 吞回车 !!!!(天坑

用 scanf 输入时,不管输入什么,最后“敲”的回车都会被留在缓冲区,这里也不例外。输入字符串时最后“敲”的回车也会被留在缓冲区,如果紧接着要给一个字符变量赋值的话,那么还没等你输入系统就自动退出来了。因为系统自动将回车产生的字符 '\n' 赋给该字符变量了,所以此时对字符变量赋值前要首先清空缓冲区。

2.在位置1处忘了continue,导致已经确定一次相等之后l=2

(今天洛谷崩了没办法评测,但我相信应该是能AC的,埋个坑。

竟然g了,果然菜鸟就是菜鸟

#include
using namespace std;
const int N=3e5+10;
int m,n;
char a[N];
char b[N];
int arr[N];
int cnt;
int main()
{scanf("%d %d",&m,&n);getchar();for(int i=1;i<=m;i++){scanf("%c",&a[i]);}getchar();//加了getchar()运行结果都不一样,可见getchar的重要性 for(int i=1;i<=n;i++){scanf("%c",&b[i]);}int l=1;for(int i=1;i<=n;i++)//遍历b的每一个位置 {if(b[i]==a[l]||b[i]=='*'||a[l]=='*'){if(l==m)//完成了一次 {arr[i+1-l]=1;cnt++;l=1;//完成后l要复原 continue; //1}l++;}else{l=1;}}printf("%d\n",cnt);if(cnt>0)for(int i=0;i

点开题解都是我不会的东西(copy一下大佬的说法,埋个坑

字符串匹配有三种方式:

  1. 哈希

  1. KMP/Z

  1. FFT

相关内容

热门资讯

实测分享“阿拉丁究竟有没有挂”... 您好:阿拉丁这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5951795】很多玩家在阿拉丁这款...
科技通报“土豆互娱 辅助有挂吗... 亲.土豆互娱这款游戏是可以开挂的,确实是有挂的,通过添加客服【3716361】很多玩家在这款游戏中怀...
玩家必看“玉溪麻将开挂神器下载... 您好:玉溪麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【2278274】很多玩家在这款游戏中打...
分享实测“ 哪嘟十三张辅助神器... 您好:哪嘟十三张这款游戏可以开挂,确实是有挂的,需要软件加微信【3716361】,很多玩家在永和备厅...
[科技揭秘]“新上游牛牛到底有... 您好:新上游牛牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9951342】很多玩家在这款游...