判断回文Python & C++

s='abccba'
n=len(s)//2
flag=True
for i in range(n):
    if s[i]!=s[len(s)-1-i]:
        flag=False
		break
if flag:
    print('回文')
else:
	print('no回文')

#include <iostream>
#include <cstring>
using namespace std;
int main(){
	string a="abccba";
	int n=a.length();
	bool flag=true;
	for(int i=0;i<=n/2;i++){
		if(a[i]!=a[n-1-i])
		flag=false;
	}
	if(flag) cout<<"回文";
	else cout<<"非回文";
	return 0;
}

C++中可以使用类似于Python的双指针方法来判断一个字符串是否为回文。以下是一个示例代码: ```c++ #include <iostream> #include <cstring> #include <cctype> // 包含头文件ctype.h using namespace std; int main() { char s[81]; // 定义一个字符数组,用于存储输入的字符串 cin.getline(s, 81); // 输入字符串(可以包含空格) int len = strlen(s); // 获取字符串的长度 // 将字符串中的英文字母全部转换为小写,并去掉非数字字母字符 for (int i = 0; i < len; i++) { s[i] = tolower(s[i]); // 将字母转换为小写 if (!isalnum(s[i])) { // 如果不是数字或字母 for (int j = i; j < len - 1; j++) { s[j] = s[j+1]; // 将后面的字符前移 } len--; // 字符串长度减1 i--; // 继续判断当前位置的字符 } } // 判断字符串是否为回文 bool is_palindrome = true; for (int i = 0; i < len/2; i++) { if (s[i] != s[len-i-1]) { is_palindrome = false; break; } } // 输出结果 if (is_palindrome) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; } ``` 该程序使用了`ctype.h`头文件中的`tolower`和`isalnum`函数,分别用于将字母转换为小写和判断字符是否为数字或字母。其中,`s[i] = tolower(s[i])`可以将`s`中的第`i`个字符转换为小写,而`isalnum(s[i])`会返回一个布尔值,表示`s`中的第`i`个字符是否为数字或字母。如果不是数字或字母,就需要将该字符从字符串中去掉,具体实现方法是将其后面的字符都前移一位,并将字符串的长度减1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值