I Love You Too
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 567 Accepted Submission(s): 305 Problem DescriptionVOYEUOOTIO
这一题绝对可以称的上水题,,直接按题的意思顺序进行就ok了,但是我还是调试了好大一会,,,简直弱爆了。。。归其原因主要是因为string中的substr不够了解啊!!!
#include <iostream> #include<algorithm> #include <string> using namespace std; char map[10][10]={{'A','B','C'},{'D','E','F'}, {'G','H','I'},{'J','K','L'}, {'M','N','O'},{'P','Q','R','S'}, {'T','U','V'},{'W','X','Y','Z'} }; string ss="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string s="QWERTYUIOPASDFGHJKLZXCVBNM"; int main() { string a; while(getline(cin,a)) {string s1=""; for(int i=0;i<a.size();i+=2) {int j = i; s1.append(1,map[a[j]-'0'-2][a[j+1]-'0'-1]); } string s2=""; int j=0; while(j<s1.size()) { for(int i=0;i<s.size();++i) if(s1[j]==s[i]) {s2.append(1,ss[i]);break;} j++; } string s3="",s4=""; if(s2.size()%2==1) { s3=s2.substr(0,s2.size()/2+1);//截取时不包括最后一个。。。 s4=s2.substr(s2.size()/2+1,s2.size()); } if(s2.size()%2==0) { s3=s2.substr(0,s2.size()/2); s4=s2.substr(s2.size()/2,s2.size()); } string s5=""; int len=max(s3.size(),s4.size()); for(int i=0;i<len;++i) { if(i<s3.size()) s5.append(1,s3[i]); if(i<s4.size()) s5.append(1,s4[i]); } for(int i=s5.size()-1;i>=0;--i) cout<<s5[i]; cout<<endl; } return 0; }