**內容** 迴文的定義為正向,反向讀到的字串均相同 如:abba , abcba ... 等就是迴文 請判斷一個字串是否是一個迴文? **輸入說明** 輸入資料共一行包含一個字串(長度 < 1000) **輸出說明** 針對每一行輸入字串輸出 yes or no **範例輸入 #1** abba **範例輸出 #1** yes **範例輸入 #2** abcd **範例輸出 #2** no **C++解法:** ``` C++ #include <iostream> #include <string> #include <algorithm> using namespace std; int main(){ string s; cout<<"請輸入一個數來判斷是否迴文:"; cin>>s; string t =s;//t用來放s原本的字串 reverse(s.begin(),s.end());//開頭字元與結束字元交換 if(t==s)//比對是否迴文 { cout<<"yes\n"; } else{ cout<<"no \n"; } return 0; } ``` **C#解法:** ```‵C# //輸入 => 轉陣列 => Reverse => 比對 using System; class HelloWorld { static void Main() { Console.WriteLine("請輸入一個數來判斷迴文:"); string s = Console.ReadLine(); char[] charArray = s.ToCharArray(); //利用char[]陣列,分割成多個部分 Array.Reverse(charArray); Console.WriteLine(charArray);//可以先查看反轉後的字串 string reversedString = new string(charArray); if(s.Equals(reversedString,StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("yes"); } else{ Console.WriteLine("no"); } } } ``` StringComparison.OrdinalIgnoreCase OrdinalIgnoreCase 執行不區分大小寫的序數比較。 為什麼使用StringComparison.OrdinalIgnoreCase? - StringComparison.OrdinaIgnoreCase是用於指定字串比較方式的枚舉值,比較字串時,會忽略==大小寫==與*==文化性==。 (用於迴文是符合的。例:"Madam"與"madam"是一樣的) - 使用StringComparison.Ordinal,會根據當前文化性的排序規則來進行比對。 而StringComparison.OrdinaIgnoreCase使用比較時,按照字母的二進制進行比對。 *文化性: 所謂的文化性是指不同地區或語言文化,對文字、數字、時間、貨幣、數字格式等方面區分,以便程式能適應不同地區與語言環境。 參考: 在 .NET 中比較字串的最佳做法 https://learn.microsoft.com/zh-tw/dotnet/standard/base-types/best-practices-strings StringComparison Enum https://learn.microsoft.com/zh-tw/dotnet/api/system.stringcomparison?view=net-8.0#system-stringcomparison-ordinal
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up