如何检查单词中的字母是否按字母顺序排列
本文关键字:是否 排列 顺序 单词中 何检查 检查 | 更新日期: 2023-09-27 18:18:23
英语中有几个单词是由字母组成的,它们是按字母顺序排列的,分别是:hot, fry, fuzz, am, in, hoops和almost。
我需要一种方法来检查单词中的字母是否满足上述规范。
我所能想到的就是创建一个字母表数组,并测试每个连续的字母在字母表数组中是否有更高的索引。
string s = "hoops";
bool inOrder = s == String.Join("", s.OrderBy(c => c));
或
bool inOrder = s.SequenceEqual(s.OrderBy(c => c));
其他答案创建临时字符串,也不必要地遍历所有字母。试试这个:)(我假设大小写无关紧要)。
bool LettersAreInAlphabeticalOrder(string word)
{
for (int i = 1; i < word.Length; i++)
{
if (Char.ToLower(word[i]) < Char.ToLower(word[i - 1]))
{
return false;
}
}
return true;
}
你可以使用这个简单的非linq函数,如果你像我一样使用。net 2.0的话:)
private bool isAlphabetic(string toCheck)
{
toCheck = toCheck.ToLower();
for (int i = 0; i < toCheck.Length; i++)
{
if (i+1 < toCheck.Length && toCheck[i] > toCheck[i + 1])
return false;
}
return true;
}