在 C# 中,如何确定给定字符串是否为回文?
In C#, How can I determine if a given string is a palindrome or not?
我现在想知道当给定的字符串(单词)时,我如何确定它是否是回文。回文是向前或向后阅读相同的单词或短语。我想我可以通过遍历单词的一半并将每个字母与另一半进行比较来解决这个问题。例如:(word[0] == word[word.Length-1-0])
会将第一个字母与单词的最后一个字母进行比较,(word[1] == word[word.Length-1-1])
会将第二个字母与倒数第二个字母进行比较。
示例输入可以是: racecar
示例输出: True
我是否正确地解决了这个问题并找到了正确的解决方案?
这是我到目前为止写下的一些内容。
public bool Test6(string word)
{
for (int i = 0; i < word.Length; i++)
{
if (word[0] == word[word.Length - 1 - 0])
{
}
请关注这个linkhttp://www.dotnetperls.com/palindrome
您可以使用此示例来完成此操作,而无需使用任何内置方法:
using System;
class Program
{
public static bool IsPalindrome(string value)
{
int min = 0;
int max = value.Length - 1;
while (true)
{
if (min > max)
{
return true;
}
char a = value[min];
char b = value[max];
if (char.ToLower(a) != char.ToLower(b))
{
return false;
}
min++;
max--;
}
}
static void Main()
{
string[] array =
{
"civic",
"deified",
"deleveled",
"devoved",
"dewed",
"Hannah",
"kayak",
"level",
"madam",
"racecar",
"radar",
"redder",
"refer",
"repaper",
"reviver",
"rotator",
"rotor",
"sagas",
"solos",
"sexes",
"stats",
"tenet",
"Dot",
"Net",
"Perls",
"Is",
"Not",
"A",
"Palindrome",
""
};
foreach (string value in array)
{
Console.WriteLine("{0} = {1}", value, IsPalindrome(value));
}
}
}
我会(很快)做到这一点。
string input = "..."
string reverse = new string(input.ToCharArray().Reverse().ToArray());
if(input.Equals(reverse)
{
// polindrome.
}
使用 LINQ 的较短版本是
bool IsPalindrome(string x)
{
return Enumerable.Range(0,x.Length/2).All(e => x[e] == x[x.Length-1-e]);
}
示例代码-
static void Main(string[] args)
{
string s,revs="";
Console.WriteLine(" Enter string");
s = Console.ReadLine();
for (int i = s.Length-1; i >=0; i--) //String Reverse
{
revs += s[i].ToString();
}
if (revs == s) // Checking whether string is palindrome or not
{
Console.WriteLine("String is Palindrome \n Entered String Was {0} and reverse string is {1}", s, revs);
}
else
{
Console.WriteLine("String is not Palindrome \n Entered String Was {0} and reverse string is {1}", s, revs);
}
Console.ReadKey();
}
请在下面找到代码
using System;
using System.Linq;
class MyClass
{
static void Main(string[] args) {
string str = Console.ReadLine();
string backwardsGuy = new string(str.Reverse().ToArray());
if(str==backwardsGuy)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
}
}
我现在想知道当给定的字符串(单词)时,我如何确定它是否是回文。回文是向前或向后阅读相同的单词或短语。我想我可以通过遍历单词的一半并将每个字母与另一半进行比较来解决这个问题。例如:(word[0] == word[word.Length-1-0])
会将第一个字母与单词的最后一个字母进行比较,(word[1] == word[word.Length-1-1])
会将第二个字母与倒数第二个字母进行比较。
示例输入可以是: racecar
示例输出: True
我是否正确地解决了这个问题并找到了正确的解决方案?
这是我到目前为止写下的一些内容。
public bool Test6(string word)
{
for (int i = 0; i < word.Length; i++)
{
if (word[0] == word[word.Length - 1 - 0])
{
}
请关注这个linkhttp://www.dotnetperls.com/palindrome
您可以使用此示例来完成此操作,而无需使用任何内置方法:
using System;
class Program
{
public static bool IsPalindrome(string value)
{
int min = 0;
int max = value.Length - 1;
while (true)
{
if (min > max)
{
return true;
}
char a = value[min];
char b = value[max];
if (char.ToLower(a) != char.ToLower(b))
{
return false;
}
min++;
max--;
}
}
static void Main()
{
string[] array =
{
"civic",
"deified",
"deleveled",
"devoved",
"dewed",
"Hannah",
"kayak",
"level",
"madam",
"racecar",
"radar",
"redder",
"refer",
"repaper",
"reviver",
"rotator",
"rotor",
"sagas",
"solos",
"sexes",
"stats",
"tenet",
"Dot",
"Net",
"Perls",
"Is",
"Not",
"A",
"Palindrome",
""
};
foreach (string value in array)
{
Console.WriteLine("{0} = {1}", value, IsPalindrome(value));
}
}
}
我会(很快)做到这一点。
string input = "..."
string reverse = new string(input.ToCharArray().Reverse().ToArray());
if(input.Equals(reverse)
{
// polindrome.
}
使用 LINQ 的较短版本是
bool IsPalindrome(string x)
{
return Enumerable.Range(0,x.Length/2).All(e => x[e] == x[x.Length-1-e]);
}
示例代码-
static void Main(string[] args)
{
string s,revs="";
Console.WriteLine(" Enter string");
s = Console.ReadLine();
for (int i = s.Length-1; i >=0; i--) //String Reverse
{
revs += s[i].ToString();
}
if (revs == s) // Checking whether string is palindrome or not
{
Console.WriteLine("String is Palindrome \n Entered String Was {0} and reverse string is {1}", s, revs);
}
else
{
Console.WriteLine("String is not Palindrome \n Entered String Was {0} and reverse string is {1}", s, revs);
}
Console.ReadKey();
}
请在下面找到代码
using System;
using System.Linq;
class MyClass
{
static void Main(string[] args) {
string str = Console.ReadLine();
string backwardsGuy = new string(str.Reverse().ToArray());
if(str==backwardsGuy)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
}
}