日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NYOJ 359 Delete it 字符串处理

發布時間:2025/3/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYOJ 359 Delete it 字符串处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Delete it

時間限制:2000?ms ?|? 內存限制:65535?KB 難度:2 描述

克林在打一行字母時總是會打多一個字符,比如想打july”時會打成juuly”,這樣他需要刪掉其中一個u’

克林想知道他可以刪掉哪個位置的字符就可以變成他真正想打的一行字母。

輸入
第一行一個整數:T (測試個數)

每個測試
輸入兩行,兩個字符串(全是小寫字母)
串長為 1 到 1000000
第一個串長度剛好比第二個的長度大一
輸出
每個測試數據:
第一行輸出可以刪除的位置個數 P
如果P > 0 第二行輸出可以刪除的位置(小到大,空格隔開,位置從1開始算)
樣例輸入
3 juuly july abc zz aa a

樣例輸出

2 2 3 0 2 1 2 ? ? ? 從第一個位置開始比較,直到找到不相等的位置,記錄不相等的位置,然后錯位比較,如果又找到一處不相等的位置,即不相等的位置個數超過1個,跳出循環,輸出0;然后用第一個字符串的最后一個元素一次與前面元素比較,如果相等,刪除點個數加1,否則跳出循環。

#include<stdio.h> #include<string.h> char s1[1000001],s2[1000001]; int main() {int n,i,j,p,cnt,len1,len2,sum;scanf("%d",&n);while(n--){scanf("%s",s1);scanf("%s",s2);len1=strlen(s1);len2=len1-1;p=i=j=cnt=0;while(i<len1&&j<len2){if(s1[i]!=s2[j]){p=i; //記錄第一個不相等的位置cnt++; //不等位置數量加1if(cnt>1) break;i++; //錯位比較}else{i++;j++;}}if(cnt>1)//不相等數量大于1,都不能刪除printf("0\n");sum=0; //記錄刪除點的個數if(cnt==0) /*abcd abc*/{for(i=len1-2;i>=0;i--) //從倒數第二個元素開始,每次都和最后一個元素比較{if(s1[i]==s1[len1-1])sum++; elsebreak;}printf("%d\n",sum+1);for(j=i+2;j<=len1;j++) //i記錄與最后一個元素不等元素的位置,從i后一個開始輸出,下標加1,最后一個元素位置為len1printf("%d ",j);printf("\n");}else if(cnt==1){for(i=p-1;i>=0;i--) //從第一個不等位置往前與a[p]比較{if(s1[i]==s1[p])sum++;else break;}printf("%d\n",sum+1);for(j=i+2;j<=p+1;j++)printf("%d ",j);printf("\n");}}return 0; }

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的NYOJ 359 Delete it 字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。