📅  最后修改于: 2023-12-03 14:55:45.685000             🧑  作者: Mango
回文是一个正读和反读都相同的字符串,比如“level”、“radar”。
可以使用两个指针分别从字符串的头部和尾部向中间遍历,并比较两个指针指向的字符是否相同,如果不相同则说明不是回文字符串。
下面是示例代码:
public static bool IsPalindrome(string str)
{
int left = 0;
int right = str.Length - 1;
while (left < right)
{
if (str[left] != str[right])
{
return false;
}
left++;
right--;
}
return true;
}
可以在外面调用该方法来判断字符串是否为回文:
string str = "level";
bool isPalindrome = IsPalindrome(str); // true
为了优化性能,可以使用char
数组来替代字符串的遍历,因为char
数组的访问速度比字符串的快:
public static bool IsPalindrome(string str)
{
char[] chars = str.ToCharArray();
int left = 0;
int right = chars.Length - 1;
while (left < right)
{
if (chars[left] != chars[right])
{
return false;
}
left++;
right--;
}
return true;
}
检查字符串是否为回文可以使用遍历字符串的方式,比较两个指针指向的字符是否相同。为了优化性能,可以使用char
数组来替代字符串的遍历。