21xrx.com
2024-09-19 10:11:34 Thursday
登录
文章检索 我的文章 写文章
C++实现回文串判断
2023-06-29 18:39:43 深夜i     --     --
C++ 回文串 判断

回文串是指正着和倒着读都一样的字符串,比如"level"和"racecar"就是回文串。回文串判断是字符串处理中的一个重要问题,本文将介绍C++实现回文串判断的方法。

一、基本思路

回文串判断的基本思路是将字符串从中间分开,如果分开后两部分对称,就是回文串。因此,我们可以利用C++自带的string类型的下标访问来实现这个思路。具体实现步骤如下:

1.用length()函数获取字符串的长度

2.判断字符串长度奇偶性,如果是偶数长度,直接从中心位置分开;如果是奇数长度,则从中心位置向左右两边分开。

3.分开后的两个子串进行对比,如果对称就是回文串。

二、代码实现

下面是C++的回文串判断代码实现:


#include <iostream>

#include <string>

using namespace std;

bool isPalindrome(string str){

  int len = str.length();

  int left, right;

  

  if (len % 2 == 0)

    left = len / 2 - 1;

    right = len / 2;

   else {

    left = len / 2 - 1;

    right = len / 2 + 1;

  }

  

  while (left >= 0 && right < len && str[left] == str[right]) {

    left--;

    right++;

  }

  

  if (left < 0 && right >= len)

    return true;

   else

    return false;

  

}

int main() {

  string s = "level";

  if (isPalindrome(s))

    cout << "是回文串" << endl;

   else

    cout << "不是回文串" << endl;

  

  return 0;

}

三、测试输出

将以上代码复制粘贴到C++编译器进行编译,输入一个字符串进行测试,比如"level",将得到如下输出结果:


是回文串

说明输入的字符串是回文串。

四、总结

回文串判断是C++字符串处理中比较典型的问题,掌握了上述的基本思路和代码实现方法,就能够解决这个问题。对于需要经常处理字符串的程序员来说,熟练掌握C++字符串处理是非常重要的。

  
  

评论区

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