Leetcode每日一题:125.valid-palindrome(验证回文串)
程序员文章站
2022-07-13 08:38:24
...
思路:这一题常规的想法是开辟一个新的字符串ss,然后遍历s时,把字母或者数字放入ss,然后对ss进行判断;但实际上ss这个数组没必要开,因为s有效的部分必小于等于s的长度,所以直接对s进行处理就行;
bool isOk(char c)
{
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'))
{
return true;
}
return false;
}
bool isPalindrome(string s)
{
int len = s.size();
int index = 0;
for (int i = 0; i < len; i++)
{
//非字母 舍去
if (!isOk(s[i]))
{
continue;
}
//大写字母转换为小写字母
if (s[i] >= 'A' && s[i] <= 'Z')
s[i] += 32;
s[index++] = s[i];
}
for (int i = 0; i < index / 2; i++)
{
if (s[i] != s[index - 1 - i])
return false;
}
return true;
}
上一篇: Zookeeper实践与应用-- Nginx负载均衡差异
下一篇: 7、Nginx负载均衡深入实践