BM88 判断是否为回文字符串
给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。
字符串回文指该字符串正序与其逆序逐字符一致。
思路:
用两个指针,一个从前向后一个从后向前,如果有不同的字符则返回false
代码:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
bool judge(string str) {
// write code here
if (str.size() == 1) return true;
if (str.size()%2 ==1 )
for (int i = 0, j = str.size()-1;i != j ;i++,j--) {
if (str[i] != str[j]) return false;
std::cout << i << " " << j << endl;
}
else
for (int i = 0, j = str.size()-1;i - 1 != j ;i++,j--) {
if (str[i] != str[j]) return false;
std::cout << i << " " << j << endl;
}
return true;
}
};
BM91 反转字符串
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
思考:
按理说是应该用双指针进行空间复杂度o(1)交换的,不过都很简单了
代码:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 反转字符串
* @param str string字符串
* @return string字符串
*/
string solve(string str) {
// write code here
string res;
for (int i = 0;i < str.size();i++) {
int d = str.size() - i -1;
res.push_back(str[d]);
}
return res;
}
};
9833

被折叠的 条评论
为什么被折叠?



