21xrx.com
2024-12-22 23:50:53 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()函数,并根据函数返回值输出是否是回文的结果。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复