算法学习
BM88 判断是否为回文字符串
https://www.nowcoder.com/practice/e297fdd8e9f543059b0b5f05f3a7f3b2?tpId=295&sfm=html&channel=nowcoder
题目描述:给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。字符串回文指该字符串正序与其逆序逐字符一致。
思路:
双指针
1.准备左右两个指针,从字符串一左一右出发;
2.每次判断两个值是否相等,直至相遇;
代码实现:
#include <iostream>
using namespace std;
class Solution {
public:
bool Judge(string str) {
int left = 0; //左指针
int right = str.length() - 1; //右指针
while (left < right)
{
if (str[left] != str[right]) //前后是否相等,否 返回false
return false;
left++;
right--;
}
return true;
}
};