引言:回文是一种具有镜像对称性的字符串,即它从左到右读和从右到左读是相同的。回文可以在文学、语言学、数学、计算机科学等领域中得到广泛应用。在计算机科学中,判断一个字符串是否为回文是一项基本的算法挑战。在本文中,我们将介绍三种常见的编程语言中用于判断字符串是否为回文的算法,并对它们的时间复杂度和空间复杂度进行分析。
正文:我们将分别介绍用C语言、Python和Java实现判断字符串是否为回文的算法。
C语言实现:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool isPalindrome(char* s) {
int len = strlen(s);
for (int i = 0, j = len - 1; i < j; i++, j--) {
if (s[i] != s[j]) {
return false;
}
}
return true;
}
int main() {
char s[100];
printf("请输入一个字符串:");
scanf("%s", s);
if (isPalindrome(s)) {
printf("%s 是回文字符串\n", s);
} else {
printf("%s 不是回文字符串\n", s);
}
return 0;
}
时间复杂度为O(n),空间复杂度为O(1)。
Python实现:
def isPalindrome(s: str) -> bool:
i, j = 0, len(s) - 1
while i < j:
if s[i] != s[j]:
return False
i, j = i + 1, j - 1
return True
s = input("请输入一个字符串:")
if isPalindrome(s):
print(f"{s} 是回文字符串")
else:
print(f"{s} 不是回文字符串")
时间复杂度为O(n),空间复杂度为O(1)。
Java实现:文章来源:https://www.toymoban.com/news/detail-769326.html
import java.util.Scanner;
public class Palindrome {
public static boolean isPalindrome(String s) {
int i = 0, j = s.length() - 1;
while (i < j) {
if (s.charAt(i) != s.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s = scanner.nextLine();
if (isPalindrome(s)) {
System.out.printf("%s 是回文字符串\n", s);
} else {
System.out.printf("%s 不是回文字符串\n", s);
}
}
}
时间复杂度为O(n),空间复杂度为O(1)。文章来源地址https://www.toymoban.com/news/detail-769326.html
到了这里,关于判断字符串是否为回文的三种常用编程语言实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!