抢到全网最优解之后发题解
其实此题有一个很好用的命令:strncmp,可以直接比较两个字符串的前n位
接下来就很方便了
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <cstdio> #include <cstring> short n,l; char a[51][101],s[101],k[]={"********\n********\n********\n********"}; int main(void){ scanf ("%d\n",&n); for (short i=0;i<n;i++)scanf ("%s\n",&a[i]); scanf ("%s",s),l=strlen(s); for (short i=0;i<n;i++)if (!strncmp(a[i],s,l)){ char c=a[i][l]; if('A'<=c&&c<='E')k[c-'A'+3]=c; if('F'<=c&&c<='M')k[c-'A'+4]=c; if('N'<=c&&c<='U')k[c-'A'+5]=c; if('V'<=c&&c<='Z')k[c-'A'+6]=c; } puts(k); }
|