克林在打一行字母时老是会打多一个字符,好比想打”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; }