给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。
字符串回文指该字符串正序与其逆序逐字符一致。
数据范围:0<n≤1000000
要求:空间复杂度 O(1),时间复杂度 O(n)
方法一:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
bool judge(string str) {
// write code here
int len=str.length();
for(int i=0;i<len/2;i++)
{
if(str[i]!=str[len-1-i])
{
return false;
}
}
return true;
}
};
方法二:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
bool judge(string str) {
// write code here
int len=str.length();
if(len==0)
return true;
int right=len-1;
int left=0;
while(left<right)
{
if(str[left]!=str[right])
{
return false;
}
left=left+1;
right=right-1;
}
return true;
}
};