21xrx.com
2025-07-07 19:02:16 Monday
文章检索 我的文章 写文章
C++判断字符串是否为回文。
2023-07-05 07:56:49 深夜i     --     --
C++ 判断 字符串 回文

在 C++ 中,判断一个字符串是否为回文是一项比较基础的技能。回文是指正着读和反着读都一样的字符串。比如“level”、“radar”、“deified” 等等,都是回文。

当我们需要对字符串进行回文判断时,我们可以采用以下两种方法。

方法一:双指针法

双指针法是比较常用而且也比较容易理解的一种方法。我们可以定义头指针和尾指针,分别指向字符串的开头和结尾,然后不断比较指针所指的字符是否相等,直到头指针大于等于尾指针,即可得出结论。

具体实现如下:

bool isPalindrome(string s) {
  int left = 0, right = s.length() - 1;
  while (left < right) {
    if (s[left] != s[right])
      return false;
    left++;
    right--;
  }
  return true;
}

方法二:翻转法

我们可以将原字符串翻转后和原字符串进行比较,如果相等,则说明该字符串是回文。具体实现如下:

bool isPalindrome(string s) {
  string reverseS = s;
  reverse(reverseS.begin(), reverseS.end());
  return s == reverseS;
}

需要注意的是,这种方法会耗费额外的空间,因为需要创建一个新的字符串来存储翻转后的结果。

以上两种方法都是比较常用的回文判断方法,读者可以根据自己的实际需求选择适合自己的方法来使用。

  
  

评论区