首頁 >後端開發 >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
上一篇:C# 中的模式下一篇:C# 中的模式