C#算法之回文数
什么是回文数?
回文数指的是正着读和反着读都相同的数字。
例如,121、1331、2332等都是回文数。
判断一个数字是否为回文数的思路
判断一个数字是否为回文数,可以先把这个数字变成字符串,然后判断字符串正着读和反着读是否一致。
还可以采用“双指针”法,从数字的两端向中间靠拢,判断每一位是否一致。
C#代码实现
方法一:将数字转化为字符串
下面是将数字转化为字符串的代码实现:
public bool IsPalindrome(int x)
{
string str = x.ToString();
int len = str.Length;
for (int i = 0; i < len / 2; i++)
{
if (str[i] != str[len - i - 1])
{
return false;
}
}
return true;
}
其中,ToString()
方法可以将一个数字转为字符串,str.Length
可以获取字符串的长度。
方法二:双指针法
下面是采用双指针法的代码实现:
public bool IsPalindrome(int x)
{
if (x < 0)
{
return false;
}
string str = x.ToString();
int left = 0, right = str.Length - 1;
while (left < right)
{
if (str[left] != str[right])
{
return false;
}
left++;
right--;
}
return true;
}
其中,需要加上判断输入的数字是否小于0,因为负数不可能是回文数。
示例说明
示例一
输入数字为12321,采用第一种方法判断是否为回文数:
int x = 12321;
bool result = IsPalindrome(x);
Console.WriteLine(result); // 输出结果为true
示例二
输入数字为-123,采用第二种方法判断是否为回文数:
int x = -123;
bool result = IsPalindrome(x);
Console.WriteLine(result); // 输出结果为false
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#算法之回文数 - Python技术站