📅  最后修改于: 2023-12-03 15:07:33.347000             🧑  作者: Mango
对于给定的一个字符串,编写一个程序来检查它是否是回文。如果是,请输出 "Yes",否则输出 "No"。
一个字符串,长度不超过 1000。
如果输入的字符串是回文,则输出 "Yes",否则输出 "No"。
abba
Yes
回文是指正着读和倒着读都是一样的词语或句子。我们可以使用两个指针从字符串的两端开始向中间扫描,如果扫描到的两个字符不相同,则不是回文;否则继续扫描。当两个指针相遇时,如果两个指针扫描过的字符都相同,则是回文。
# Python 代码
def isPalindrome(s):
i, j = 0, len(s)-1
while i < j:
if s[i] != s[j]:
return "No"
i += 1
j -= 1
return "Yes"
s = input()
print(isPalindrome(s))
// C++ 代码
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s[1001];
cin >> s;
int n = strlen(s);
int i = 0, j = n-1;
while (i < j) {
if (s[i] != s[j]) {
cout << "No" << endl;
return 0;
}
i++;
j--;
}
cout << "Yes" << endl;
return 0;
}
// Java 代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
int n = s.length();
int i = 0, j = n-1;
while (i < j) {
if (s.charAt(i) != s.charAt(j)) {
System.out.println("No");
return;
}
i++;
j--;
}
System.out.println("Yes");
}
}