C#算法之回文数

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技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C# 通过 inline-asm 解决嵌入x86汇编

    首先,C# 通过 inline-asm 解决嵌入x86汇编,需要使用 __asm 关键字,在 C# 程序中编写 inline 汇编代码。 例如,下面是一个使用 inline-asm 在 C# 程序中调用 x86 汇编代码的示例: unsafe public static void InlineAsmTest() { int result = 0; // 内联…

    C# 2023年6月7日
    00
  • c#调用vc写的ocx控件示例

    C# 调用 VC 写的 OCX 控件需要使用 COM 互操作技术来实现,这里提供一份完整攻略,包含如下步骤: 编写 VC 的 OCX 控件首先需要使用 VC 编写一个 OCX 控件,在编写过程中需要注意接口设计,以便在后续的调用中能够顺利确定方法和参数。实现后,需要注册控件并生成 TLB 文件。 引入 TLB 文件在 C# 项目中引入生成的 TLB 文件,以…

    C# 2023年6月7日
    00
  • 在Linux中安装ASPNET.Core3.0运行时的示例代码

    在Linux中安装ASP.NET Core 3.0运行时的示例代码 在本文中,我们将详细讲解如何在Linux中安装ASP.NET Core 3.0运行时,并提供两个示例说明。 准备工作 在开始之前,您需要安装以下软件: Linux操作系统(本文以Ubuntu 18.04为例) .NET Core 3.0 SDK 安装ASP.NET Core 3.0运行时 添…

    C# 2023年5月16日
    00
  • C#集合本质之堆栈的用法详解

    C#集合本质之堆栈的用法详解 什么是堆栈(Stack)? 堆栈是一种特殊的数据结构,它的特点是后进先出(Last In First Out, LIFO)。堆栈通常是通过数组或链表实现的,操作系统在进程调度、函数调用、表达式求值等方面广泛应用了堆栈。 C#堆栈的实现 C#中实现堆栈的数据结构有两种,一种是System.Collections.Stack类,另一…

    C# 2023年6月7日
    00
  • 通用的CRUD之LiteDB

    前言 你要开发一个系统,是不是首要任务是先建库,建表,建字段,既所谓的数据建模(听起来高大上一点,数据建模也确实是个烧脑的活),要费不少功夫。不知你是否遇到过这样的场景。A产品有3个测试参数,B产品有6个测试参数,而且值和类型都各不相同,用SQL你要怎么建表呢?有人会说这简单“参数名,参数值两列搞定”,NO!数据类型考虑了吗,数据量考虑了吗?有人又说”每个参…

    C# 2023年5月10日
    00
  • iframe式ajax调用示例

    以下是“iframe式ajax调用示例”的完整攻略,包括什么是iframe式ajax调用、如何实现iframe式ajax调用以及两个示例。 什么是iframe式ajax调用? iframe式ajax调用是一种在网页中使用iframe元素来进行ajax请求的技术。通过使用iframe元素,我们可以在不刷新整个页面的情况下,向服务器发送ajax请求并获取响应结果…

    C# 2023年5月15日
    00
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

    在前两篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) 我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.net co…

    C# 2023年5月6日
    00
  • .NET 个人博客系统

    前言 之前通过github学习了一个.net core的博客项目,最近也是完成了博客的备案,完善了一下。该项目是传统的MVC项目,可以进行主题的切换,采用Bootstrap进行前台页面的展示,有配套的后台管理系统,可以解析Markdown文件。 参观地址 ZY知识库可以将个人的意见评论到该文章,我可以采纳采纳。 采用技术 后端:.NET Core ORM:E…

    C# 2023年4月17日
    00
合作推广
合作推广
分享本页
返回顶部