判断回文
解释
回文串的定义:正者读和反者读一样
比如 a 就是一个、abcba 也是一个回文
对于abcda就不是
题解1
这个思路很简单,我们直接将这个字符串反转,然后和之前的进行比较,要是相等,就是
代码class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
bool judge(string str) {
// write code here
//回文串的定义:正者读和反者读一样
//比如 a 就是一个、abcba 也是一个回文
//对于abcda就不是
//这个思路很简单,我们直接将这个字符串反转,然后和之前的进行比较,要是相等,就是
string os = str;//先将原始的字符串给os
reverse(str.begin(),str.end());//再将str反转
if(os == str)//判断
return true;
else
return false;
}
};
题解2
我们可以对上面进行优化,之间对字符串本身进行比较即可,利用回文的性质,首位两个字符是相等的,最中间一个字符不用比较,有如下方法
先求的整个字符串长度:len
那么首位比较的次数就是: len/2
首尾判断是否相等 str[i] == str[len-i-1]
代如下:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
bool judge(string str) {
// write code here
int len = str.length();
//需要循环比较len/2次
for(int i =0; i< len/2; i++)
{
if(str[i] != str[len-i-1] )
return false;
}
return true;
}
};

京公网安备 11010502036488号