125.验证回文串

题目

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

1
2
输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

1
2
输入: "race a car"
输出: false

思路

这道题还是比较简单的,因为只考虑字母和数字字符,剩下的都不考虑,所以解题步骤只有3步:

  • 将输入字符串全部转化为小写.
  • 逐个验证是否是字母或者数字,如果是就假如新的字符串.
  • 验证这个新的字符串是否为回文.

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public bool IsPalindrome(string s)
{
s = s.ToLower();
System.Text.StringBuilder result = new System.Text.StringBuilder();
foreach (var c in s)
{
if (c >= 'a' && c <= 'z' || c >= '0' && c <= '9')
{
result.Append(c);
}
}
for (int i = 0; i < result.Length / 2; i++)
{
if (result[i] != result[result.Length - 1 - i])
{
return false;
}
}
return true;
}