判断字符串是否为回文
- 二、C 语言实现
- 三、C++ 实现
- 四、Java 实现
- 五、Python 实现
💐The Begin💐点点关注,收藏不迷路💐
|
输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。
输入
输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。
输出
输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。
样例输入
abcdedcba
样例输出
yes
比较字符串前半部分和后半部分对应位置的字符是否相等,如果都相等则为回文,只要有一处不相等就不是回文。
二、C 语言实现
#include <stdio.h>
#include <string.h>
int main() {
char str[101]; // 定义字符数组来存储输入的字符串,长度设为 101 以容纳'\0'
scanf("%s", str); // 读取输入的字符串
int len = strlen(str); // 获取字符串的长度
int i;
for (i = 0; i < len / 2; i++) { // 只需要比较一半的字符
if (str[i]!= str[len - i - 1]) { // 如果对应位置字符不相等
printf("no\n"); // 不是回文,输出 no
return 0;
}
}
printf("yes\n"); // 循环比较完都相等,是回文,输出 yes
return 0;
}
首先定义一个足够长度的字符数组 str
来接收输入的字符串。然后使用 strlen
函数获取字符串的长度。接着通过 for
循环,从字符串的首尾两端向中间逐步比较字符。如果在比较过程中发现对应位置的字符不相等,即可判定该字符串不是回文,直接输出 no
并结束程序。若循环顺利完成,说明字符串是回文,输出 yes
。
三、C++ 实现
#include <iostream>
#include <string>
using namespace std;
int main() {
string str; // 定义字符串对象来存储输入的字符串
cin >> str; // 读取输入的字符串
int len = str.size(); // 获取字符串的长度
for (int i = 0; i < len / 2; i++) { // 比较前一半和后一半对应位置字符
if (str[i]!= str[len - i - 1]) { // 如果有不相等的情况
cout << "no" << endl; // 不是回文,输出 no
return 0;
}
}
cout << "yes" << endl; // 比较完都相等,是回文,输出 yes
return 0;
}
这里使用 string
类来存储输入的字符串,通过 size
方法获取字符串长度。后续的回文判断逻辑与 C 语言类似,通过循环比较字符串前后半部分对应位置的字符,根据比较结果输出相应信息。
四、Java 实现
import java.util.Scanner;
public class PalindromeCheck {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); // 读取输入的字符串
int len = str.length(); // 获取字符串长度
for (int i = 0; i < len / 2; i++) { // 比较前半段和后半段对应位置字符
if (str.charAt(i)!= str.charAt(len - i - 1)) { // 如果有字符不相等
System.out.println("no"); // 不是回文,输出 no
return;
}
}
System.out.println("yes"); // 比较完都相等,是回文,输出 yes
}
}
使用 Scanner
类读取输入的字符串。通过 length
方法获取字符串长度,然后利用 charAt
方法获取指定位置的字符进行比较,以判断字符串是否为回文。
五、Python 实现
str_ = input() // 获取输入的字符串
if str_ == str_[::-1]: // 利用切片反转字符串并与原字符串比较
print("yes") // 如果相等,是回文,输出 yes
else:
print("no") // 不相等,不是回文,输出 no
Python 代码利用切片操作 [::-1]
轻松地将字符串反转,然后直接与原字符串进行比较。
💐The End💐点点关注,收藏不迷路💐
|