21xrx.com
2025-03-23 20:54:03 Sunday
文章检索 我的文章 写文章
C++实现字符串回文判断
2023-06-22 14:36:56 深夜i     --     --
C++ 字符串 回文 判断 实现

在C++编程中,字符串回文判断是一项基本任务。回文是一种特殊的字符串形式,它指的是正序和倒序的字符序列是相同的。例如,“racecar”就是一个回文字符串。

要判断一个字符串是否是回文,可以使用双指针法。这种方法通过将一个指针指向字符串的开头,另一个指针指向字符串的末端,然后比较字符是否相等。

下面是一个使用双指针法判断字符串回文的示例代码:

#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(string str) {
  int left = 0, right = str.length() - 1;
  while(left < right) { //当左侧指针小于右侧指针时
    if(str[left] != str[right]) //如果左侧字符不等于右侧字符
      return false; //不是回文
    
    left++; //左侧指针向右移动
    right--; //右侧指针向左移动
  }
  return true; //是回文
}
int main() {
  string str = "racecar";
  if(isPalindrome(str)) it is a palindrome!" << endl;
   else
    cout << "No
  return 0;
}

在这个示例代码中,我们首先定义了一个isPalindrome()函数,参数为要检测的字符串。在函数中,我们定义了左右两个指针,分别指向字符串的开头和结尾。然后我们开始一个while循环,只要左侧指针小于右侧指针,就继续比较字符。如果左侧字符不等于右侧字符,说明这个字符串不是回文,函数返回false。如果左侧字符等于右侧字符,就继续移动指针,继续比较下一个字符。最后,如果整个字符串都比较完毕,说明这个字符串是回文,函数返回true。

在主函数中,我们定义了一个字符串“racecar”,然后调用isPalindrome()函数,并根据函数返回值输出是否是回文的结果。

使用这种方法可以快速、简便地判断一个字符串是否是回文。如果在实际应用中需要进行大量的字符串回文判断,可以在程序中封装这个函数并进行适当的优化来提高效率。

  
  

评论区