设计算法,判断回文问题
采用字符串容器存储,设计算法判断该字符串是否为回文。
C(双指针):
#include <stdio.h>
#include <string.h>
int JudgeReverseString(char* arr,int left,int right) {
if (left <= right) {
if (arr[left] != arr[right]) {//判断首位和末位是否相等
return 0;
}
else {
return JudgeReverseString(arr, left + 1, right - 1);
}
}
return 1;
}
int main() {
char arr[100] = {0};
gets(arr);
int right = (int)strlen(arr) - 1;
int left = 0;
if (JudgeReverseString(arr,left,right)) {
printf("是回文\n");
}
else {
printf("不是回文\n");
};
return 0;
}
java(字符串的成员方法):
import java.sql.SQLOutput;
import java.util.Scanner;
public class Test {
public static boolean isPalindrome(String str) {
String reversedStr = new StringBuilder(str).reverse().toString(); // 创建一个反转后的字符串
return str.equals(reversedStr); // 比较原字符串和反转后的字符串是否相等
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个小于100的字符串:");
String word = scanner.nextLine();
if (isPalindrome(word)) {
System.out.println("是回文");
} else {
System.out.println("不是回文");
}
}
}
python(切片操作逆置字符串):
def is_palindrome(string):
reversed_string = string[::-1] # 创建一个反转后的字符串
return string == reversed_string # 比较原字符串和反转后的字符串是否相等
word=input("输入一个字符串\n")
if is_palindrome(word):
print("是回文")
else:
print("不是回文")