初级算法16. 验证回文字符串
Posted 且听疯吟吖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初级算法16. 验证回文字符串相关的知识,希望对你有一定的参考价值。
题目:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false
1.解题思路:
本题比较简单,直接取字符串的前后字母进行比对,如果相等则前进,否则返回错误。
class Solution { public: bool isPalindrome(string s) { int len = s.size(); int start = 0; int end = len-1; while(start < end){ char first,second; /*get the fisrt char*/ while(start <= end){ if((s[start] >= ‘a‘ && s[start] <= ‘z‘)|| (s[start] >= ‘A‘ && s[start] <= ‘Z‘)|| (s[start] >= ‘0‘ && s[start] <= ‘9‘)){ first = s[start]; if(s[start] >= ‘A‘ && s[start] <= ‘Z‘){ first = first-‘A‘+‘a‘; } break; }else{ start++; } } /*get the second char*/ while(start <= end){ if((s[end] >= ‘a‘ && s[end] <= ‘z‘)|| (s[end] >= ‘A‘ && s[end] <= ‘Z‘)|| (s[end] >= ‘0‘ && s[end] <= ‘9‘)){ second = s[end]; if(second <= ‘Z‘&&second>=‘A‘){ second = second-‘A‘+‘a‘; } break; }else{ end--; } } if(start > end){ break; } if(first == second){ start++; end--; }else{ return false; } } return true; } };
以上是关于初级算法16. 验证回文字符串的主要内容,如果未能解决你的问题,请参考以下文章