UVA401 Palindromes

本文详细介绍了如何通过编程检查输入字符串是否为回文、镜像字符串或两者皆是。通过一系列操作,包括字符替换和比较,实现对字符串属性的判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找回文数和镜像;


#include<iostream>
#include<string>
using namespace std;
int main ()
{
	string line;
	string line1;
	string line3;
	int k;
	while(cin>>line1)
	{  
		line3=line1;
		int n=line1.size();
		int high=n-1;
		int low=0;
		int flag1=0;
		int flag2=0;
		int j;
		for(k=0;k<n;k++)
            if(line1[k]=='0')
				  line1[k]='O';
		line=line1;

		for(;high>low;high--,low++)
		{
			if(line1[high]!=line1[low])
			{flag1=1;break;}
		}
		for(j=0;j<n;j++)
		{
			if(line[j]=='E'){line[j]='3';continue;}
				if(line[j]=='3'){line[j]='E';continue;}
					if(line[j]=='J'){line[j]='L';continue;}
						if(line[j]=='L'){line[j]='J';continue;}
							if(line[j]=='S'){line[j]='2';continue;}
								if(line[j]=='2'){line[j]='S';continue;}
									if(line[j]=='Z'){line[j]='5';continue;}								
										if(line[j]=='5'){line[j]='Z';continue;}
		}
		for(high=n-1,low=0;high>=0;high--,low++)
		{
			if(line[high]!='E'&&line[high]!='3'&&line[high]!='J'&&line[high]!='L'&&line[high]!='S'&&line[high]!='2'&&line[high]!='Z'&&line[high]!='5'&&line[high]!='A'&&line[high]!='H'&&line[high]!='I'&&line[high]!='M'&&line[high]!='O'&&line[high]!='0'&&line[high]!='T'&&line[high]!='V'&&line[high]!='U'&&line[high]!='W'&&line[high]!='X'&&line[high]!='Y'&&line[high]!='8')
		 {flag2=1;break;}
			
			if(line[high]!=line1[low])
			{flag2=1;break;}
		}
		if(flag1==1&&flag2==1)
			cout<<line3<<" -- is not a palindrome."<<endl<<endl;
		if(flag1==1&&flag2==0)
			cout<<line3<<" -- is a mirrored string."<<endl<<endl;
		if(flag1==0&&flag2==0)
			cout<<line3<<" -- is a mirrored palindrome."<<endl<<endl;
		if(flag1==0&&flag2==1)
			cout<<line3<<" -- is a regular palindrome."<<endl<<endl;


	}


	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值