题目:大意是说李老师的课堂上有n个学生,给出这n个人名单,今天共来了n-1个人,有一个人没来,给出这n-1个人的名单,来找出没来的那个人。
方法:开始使用map,set都会超时,汗了半天,实在没办法了,看了一下别人的思路,神思路!!大致方法就是把他们n个人的名字加起来,然后在减去n-1个人的名字,剩下的就是没来的那个人的名字。这里需要使用到ASCII码和数字之间通用的属性。
代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int i,j,n; int s[32],k=1; char t[33]; while(scanf("%d",&n)!=EOF) { memset(s,0,sizeof(s)); int len=0; for(i=0;i<n;i++) { scanf("%s",t); len=strlen(t); for(j=0;j<len;j++) s[j]+=t[j]; } for(i=0;i<n-1;i++) { scanf("%s",t); len=strlen(t); for(j=0;j<len;j++) s[j]-=t[j]; } printf("Scenario #%d\n",k++); for(i=0;i<n&&s[i];i++) printf("%c",s[i]); puts("\n"); } return 0; }
nefu 643 teacher Li
时间: 2024-10-14 04:47:56