克林在打一行字母時老是會打多一個字符,好比想打」july」時會打成」juuly」,這樣他須要刪掉其中一個’u’。ios
克林想知道他能夠刪掉哪一個位置的字符就能夠變成他真正想打的一行字母。測試
克林在打一行字母時老是會打多一個字符,好比想打」july」時會打成」juuly」,這樣他須要刪掉其中一個’u’。ios
克林想知道他能夠刪掉哪一個位置的字符就能夠變成他真正想打的一行字母。測試
第一行一個整數:T (測試個數)spa
每一個測試指針
輸入兩行,兩個字符串(全是小寫字母)code
串長爲 1 到 1000000ip
第一個串長度恰好比第二個的長度大一字符串
每一個測試數據:string
第一行輸出能夠刪除的位置個數 Pit
若是P > 0 第二行輸出能夠刪除的位置(小到大,空格隔開,位置從1開始算)io
#include<iostream> #include<stdio.h> #include<cstring> using namespace std; #define MAX 1000000 char a[MAX+10],b[MAX+10]; int main() { //freopen("data.in", "r", stdin); //freopen("data.out","w",stdout); int n,i,len,j; scanf("%d",&n); while(n--) { scanf("%s%s",&a,&b); len=strlen(b); i=0;j=len+1; while(i<len&&a[i]==b[i]) i++; while(j-1>0&&a[j-1]==b[j-2]) j--; //printf("i=%d j=%d\n",i,j); if(i-j+2<=0) printf("0\n"); else { printf("%d\n",i-j+2); for(int m=j-1;m<=i;m++) { if(m==j-1) printf("%d",m+1); else printf(" %d",m+1); } printf("\n"); } } return 0; }