poj 2041 Unreliable Message 字符串处理

水题,直接贴代码。

//poj 2041//sep9#include <iostream>using namespace std;char mode[128];char ori[128],res[128];int len;void J(){ori[0]=res[len-1];for(int i=1;i<len;++i)ori[i]=res[i-1];}void C(){ori[len-1]=res[0];for(int i=0;i<len-1;++i)ori[i]=res[i+1];}void E(){int i;for(i=0;i<len/2;++i)ori[i]=res[i+(len+1)/2];if(len%2==1)ori[len/2]=res[len/2];for(i=(len+1)/2;i<len;++i)ori[i]=res[i-(len+1)/2];}void A(){for(int i=0;i<len;++i)ori[i]=res[len-1-i];}void P(){for(int i=0;i<len;++i)if(res[i]<='9'&&res[i]>='0')ori[i]=res[i]=='0'?'9':res[i]-1;elseori[i]=res[i];}void M(){for(int i=0;i<len;++i)if(res[i]<='9'&&res[i]>='0')ori[i]=res[i]=='9'?'0':res[i]+1;elseori[i]=res[i];}int main(){int i,n;scanf("%d",&n);while(n–){scanf("%s%s",mode,res);len=strlen(res);ori[len]='\0';for(i=strlen(mode)-1;i>=0;–i){if(mode[i]=='J')J();else if(mode[i]=='C')C();else if(mode[i]=='E')E();else if(mode[i]=='A')A();else if(mode[i]=='P')P();else if(mode[i]=='M')M();strcpy(res,ori);}printf("%s\n",res);}return 0;}

,旅行还在继续,这个过程是艰难而又孤单的。

poj 2041 Unreliable Message 字符串处理

相关文章:

你感兴趣的文章:

标签云: