如何检查单词中的字母是否按字母顺序排列

本文关键字:是否 排列 顺序 单词中 何检查 检查 | 更新日期: 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;
  }