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日

相关文章

  • 协程作用域概念迭代RxTask 实现自主控制

    《协程作用域概念迭代RxTask 实现自主控制》是一个非常高级的主题,需要一定的编程基础和经验才能很好地理解和应用。以下是完整攻略,包括协程作用域的概念、迭代RxTask的实现以及如何实现自主控制。 协程作用域 协程作用域是指一种新的变量作用域,它是由 coroutineScope{} 函数创建的。在该作用域内的协程不会超出该作用域,这意味着,当离开该作用域…

    C# 2023年6月1日
    00
  • .NET中的多线程-并行编程

    .NET中的多线程-并行编程 在.NET框架中,多线程编程可以提高程序的性能和并发能力。.NET框架提供了一系列的类和API,用于简化多线程编程。本文将介绍.NET中的多线程-并行编程,并给出一些示例代码。 什么是多线程? 多线程是指一个进程中有多个线程同时执行。每个线程都是独立的执行路径,可以同时执行不同的代码。多线程编程可以提高程序的性能和响应速度,特别…

    C# 2023年4月18日
    00
  • C#使用正则表达式过滤html标签

    下面是使用C#过滤html标签的完整攻略。 1. 正则表达式 我们知道,HTML标签的特点是以<开头,以>结尾,并且中间可能会有一些属性,例如<div class=”my-class”>。为了过滤掉HTML标签,我们可以使用正则表达式,其中最基础的正则表达式如下: <[^>]+> 这个表达式表示匹配所有以<开头…

    C# 2023年6月7日
    00
  • C#判断字符串是否是数字(实例)

    下面是关于“C#判断字符串是否是数字(实例)”的详细攻略。 标题 问题描述 如何在C#中判断一个字符串是否是数字? 解决方案 C#中判断字符串是否是数字,常用的有以下三种方法: 使用double.TryParse()方法 使用int.TryParse()方法 使用正则表达式 下面我们将详细介绍这三种方法。 方法一:使用double.TryParse()方法 …

    C# 2023年6月8日
    00
  • C#中的delegate委托类型基本学习教程

    下面我将为你讲解C#中的delegate委托类型基本学习教程的完整攻略。 什么是delegate(委托)类型? delegate(委托)是C#的一个重要部分,在GUI开发和事件处理等应用中起着至关重要的作用。delegate(委托)类型可以看作是一个函数指针,使程序员能够在运行时动态地关联一个或多个方法到一个委托实例上,并将委托实例作为参数来传递和调用一个方…

    C# 2023年5月15日
    00
  • 利用JQuery直接调用asp.net后台的简单方法

    当使用 ASP.NET 进行 Web 开发时,常常需要通过 Ajax 技术实现与后台服务器的数据交互,实现无刷新或部分刷新的效果。JQuery 是一个流行的 JavaScript 库,它可以轻松地实现与后台 ASP.NET 及其他服务器端语言的交互。 下面是几个简单方法,利用 JQuery 直接调用 ASP.NET 后台程序以及如何从后台程序返回数据。 一、…

    C# 2023年6月3日
    00
  • WPF绑定实例详解

    WPF绑定实例详解 在WPF中,绑定是一种非常重要的特性,它可以将数据与UI元素连接在一起,使得数据的变化能够自动更新到UI界面上。本文将详细介绍WPF绑定的使用方法与注意事项。 绑定的基本用法 WPF中的绑定基于MVVM设计模式,通过将视图(View)与视图模型(ViewModel)分离,使得界面逻辑与业务逻辑解耦合,降低代码的耦合性和复杂性。绑定的基本用…

    C# 2023年5月31日
    00
  • 无法从 int? 转换为 int 运行时出现错误

    问题分析 在程序中常常会使用到可空类型(Nullable Type),可空类型表示能存储特定值类型(如 int、float)或者 null 值。在使用可空类型时,我们需要注意到数据类型转换的问题。例如,当我们把一个可空类型的 int? 变量赋值给 int 类型的变量时,就需要进行数据类型转换。如果该 int? 变量的值为 null,就会在进行转换时出现运行时…

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