编写程序判断一个字符串是否回文
时间: 2023-05-23 11:04:14 浏览: 152
A:
可以编写一个判断回文的函数如下:
```
bool isPalindrome(string str){
int len = str.length();
for (int i = 0; i < len / 2; i++){
if (str[i] != str[len - i - 1]){
return false;
}
}
return true;
}
```
该函数接受一个字符串作为输入参数。首先获取字符串的长度,然后循环遍历字符串前半部分,依次判断第i个字符和倒数i个字符是否相等,一旦发现不相等的字符,就返回false。如果循环全部结束都没有发现不相等的字符,就返回true,表示该字符串是回文。
可以在主函数中调用该函数,例如:
```
int main(){
string str = "ABCBA";
if (isPalindrome(str)){
cout << str << " is palindrome." << endl;
} else {
cout << str << " is not palindrome." << endl;
}
return 0;
}
```
输出结果为:
```
ABCBA is palindrome.
```
相关问题
编写程序,判断一个字符串是不是回文
要编写一个C语言程序来判断一个字符串是否为回文,你可以使用两个指针,一个从字符串开始,另一个从结尾开始,然后逐个比较字符。如果在整个过程中所有对应的字符都相等,则该字符串是回文。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 判断字符串是否为回文
int isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return 0; // 如果不相等,立即返回0(不是回文)
}
start++;
end--;
}
return 1; // 所有字符都匹配,返回1(是回文)
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 注意去掉末尾的换行符
input[strcspn(input, "\n")] = '\0'; // 去掉换行符
if (isPalindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
```
在这个程序中,`isPalindrome` 函数接受一个字符串并检查它的前半部分和后半部分是否对称。如果是回文,它会返回1;否则返回0。
运行这个程序时,请输入一个字符串,程序将会告诉你是回文还是非回文。
编写程序来判断一个字符串是否是回文 编写一个程序来判断一个字符串是否是回文 数据结构Java语言
在Java中,我们可以使用双指针法来判断一个字符串是否是回文。回文是指正读反读都一样的词语,例如 "level" 和 "racecar" 就是回文字符串。
以下是一个简单的Java函数示例:
```java
public class Main {
public static boolean isPalindrome(String str) {
// 确保输入不是null并且转换为小写
if (str == null || str.isEmpty()) {
return false;
}
str = str.toLowerCase(); // 对于大小写不敏感的判断
int left = 0; // 左指针
int right = str.length() - 1; // 右指针
while (left < right) {
// 如果左右字符不相等,则不是回文
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++; // 左指针右移
right--; // 右指针左移
}
// 如果所有字符都匹配了,那么它是回文
return true;
}
public static void main(String[] args) {
System.out.println(isPalindrome("A man, a plan, a canal: Panama")); // 输出: true
System.out.println(isPalindrome("hello")); // 输出: false
}
}
```
在这个程序中,我们初始化两个指针分别指向字符串的开始和结束,然后不断比较它们指向的字符是否相同。如果发现不相等,立即返回`false`;当两个指针相遇或交叉时,说明整个字符串是回文,返回`true`。
阅读全文
相关推荐
















