首页 >后端开发 >C#.Net教程 >C# 中的回文

C# 中的回文

王林
王林原创
2024-09-03 15:34:21998浏览

每所学院或大学都倾向于给学生一些锻炼。为了好玩,给学生提供了诸如回文的程序。每种编程语言都有自己的回文程序编写方法。许多人可能熟悉也可能不熟悉这个概念。不用担心。在接下来的 C# 回文文章中,您将了解回文到底是什么以及我们如何以编程方式实现它。

我们来谈谈回文到底是什么意思。任何数字,即使我们把它颠倒过来,也一样。

例如:1234321 =>即使您尝试以相反的顺序书写,这个数字也会给您相同的编号。
更多例子有 565,757, 99899, 52125 等

现在我们来看看具体的计算方法。

假设我们有 434。
现在,让我们反转它,我们只得到 434。

回文最有趣的是,如果我们将它们相加,我们将得到一个新的回文编号。

例如:214 + 412 = 626(626只不过是回文数。)
这仅仅意味着,如果我们没有向前和向后遍历,那么我们也会得到相同的编号。
有一些方法可以检查不同语言中的回文。这里我们将用 C# 来检查。

C# 中回文背后的逻辑

这里使用的简单逻辑向后和向前遍历输入的序列,并且给定的数字或字符串与初始的对应输出相同,称为回文。

仔细看下面的程序,它接受用户的输入并检查它是否是回文。一旦你了解了回文数的概念,识别起来就非常简单了。

代码:

using System;
public class IsPalindrome
{
public static void Main(string[] args)
{
int no,total=0,t,rev;
Console.Write("Please provide the no: ");
no = int.Parse(Console.ReadLine());
t=no;
while(no>0)
{
rev=no%10;
total=(total*10)+rev;
no=no/10;
}
if(t==total)
Console.Write("The given number is Palindrome.");
else
Console.Write("The given number is not Palindrome");
}
}

输出:

要求用户输入任意编号的输出。

现在输入no后,会显示no是否是回文。

C# 中的回文

在上面的程序中,我们接受了用户的输入。我们通过解析方法将该输入转换为整数。在 while 循环的帮助下,我们反转了 no 并与原来的 no 进行了检查。

如果用户提供的 no 和我们逆向的 no 相同,那么这个 no 就是回文。在我们的例子中,我们取了 212。我们得到的给定数字的输出是回文。

如何在 C# 中使用各种方法检查回文?

到目前为止,我们只检查了回文数。但让我告诉你,我们也可以用字符串来检查这一点。因为某些字符串的组合也具有回文性质。

示例#1 – 女士

女士,我们把这个字符串反转一下,我们会找到相同的字符串。
通过编程方式看到会很高兴。

代码:

using System;
public class Palindrome {
public static void Main(string[] args) {
string inputStr, r;
inputStr = "Madam";
char[] letter = inputStr.ToCharArray();
Array.Reverse(letter);
r = new string(letter);
bool bool1 = inputStr.Equals(r, StringComparison.OrdinalIgnoreCase);
if (bool1 == true) {
Console.WriteLine("This string " + inputStr + " is a Palindrome!");
} else {
Console.WriteLine("This string " + inputStr + " is not a Palindrome!");
}
Console.ReadLine();
}
}

输出:

C# 中的回文

现在我们来谈谈上面的程序。我们实际上在这里做了什么。

我们这里拿了一根绳子,那只是“女士”。然后我们将该字符串转换为字符数组。我们使用 ToCharArray() 方法来创建字符数组。创建字符数组后,我们对该数组使用reverse方法使其反转。然后我们借助 Equals() 方法比较给定的字符串和反转的字符串。我们将此方法的输出存储在名为 bool1 的变量中,该变量的类型为布尔值。

现在,最后在 if-else 条件的帮助下,我们检查了变量 bool1 是否等于 true 或 false。在我们的程序中,if 条件被执行。因此输出是“字符串 Madam 是回文。”

查找单词或数字没有限制。

你可以用它制作拼图。有很多条件,比如你有一个完整的段落,有人要求你检查是否有任何字符串是回文。

有些例子就像有一个段落,但整个句子本身就是一个回文。

示例#2 – 我看到的是一辆汽车还是一只猫?

如果我们颠倒上面的句子,那么我们会再次得到相同的句子。

举个例子;请查看以下代码。

代码:

using System;
public class Palindrome
{
public static bool IsPalindrome(string value)
{
int x = 0;
int y = value.Length - 1;
while (true)
{
if (x > y)
{
return true;
}
char i = value[x];
char j = value[y];
// Scan forward for a while invalid.
while (!char.IsLetterOrDigit(i))
{
x++;
if (x > y)
{
return true;
}
i = value[x];
}
while (!char.IsLetterOrDigit(j))
{
y--;
if (x > y)
{
return true;
}
j = value[y];
}
if (char.ToLower(i) != char.ToLower(j))
{
return false;
}
x++;
y--;
}
}
public static void Main()
{
string[] ary =
{
"Was it a car or a cat I saw?"
};
foreach (string value in ary)
{
Console.WriteLine("{0} = {1}", value, IsPalindrome(value));
}
}
}

输出:

C# 中的回文

因此,正如我们所说,整个句子本身就是一个回文。如果你也颠倒它,它会给你同样的句子。

在上面的程序中,我们遍历句子直到最后。然后我们将其改为小写并对照给定的句子进行检查。自己编写代码来尝试这个程序;那么只有你才能理解这些程序的实际流程。

结论

像回文这样的技巧有很多。我们已经看到了刺和数,它们本质上是回文。通过一些步骤,我们多么轻松地实现了这一目标。

以上是C# 中的回文的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:Patterns in C#下一篇:Factorial in C#