码迷,mamicode.com
首页 > 其他好文 > 详细

poj 2041 Unreliable Message 字符串处理

时间:2015-03-14 08:26:26      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:poj   算法   

水题,直接贴代码。

//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;
		else 
			ori[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;
		else 
			ori[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 字符串处理

标签:poj   算法   

原文地址:http://blog.csdn.net/sepnine/article/details/44256475

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!