获取字母顺序最高的字符串

本文关键字:字符串 顺序 获取 | 更新日期: 2023-09-27 18:14:18

很难说清楚。基本上,我有一个List,我需要返回一个字符串它将是那个列表中按字母顺序排列的最后一个。例如:

如果我有列表:

{ "01", "0a2", "test" }

我需要返回一个按字母顺序排在后面的字符串,例如"tf"

获取字母顺序最高的字符串

这个回答有点俗套,但我希望能有所帮助。假设您的字符串在一个排序列表中,我有一个小的"快而脏"的方法,它按字母顺序生成下一个项:

var items = new System.Collections.Generic.SortedList<string, string>();
items.Add("01", "01");
items.Add("02a", "02a");
items.Add("test", "test");
var nextItem = items.Last().Key;
int pos = nextItem.Length - 1;
while (pos >= 0)
{
   if ((nextItem[pos] != 'z') && (nextItem[pos] != 'Z'))
   {
      nextItem = nextItem.Substring(0, pos - 1) +  Convert.ToChar(Convert.ToInt32(nextItem[pos]) + 1) + nextItem.Substring(pos + 1);
      break;
    }
    pos--;
 }
 if (pos == -1)
 {
    nextItem += "a";
 }

你不说用什么语言?

大多数语言都有一个数组排序函数,按字母顺序排序。只需进行排序,然后选择数组的最后一个元素。

如果你总是想要一个字母顺序为"last"的字符串在所有现有字符串之后,这应该工作;)

var words = new []{"01","0a2","test"}; 
int maxLength = words.ToList().Max(x => x.Length);
string newWord ="";
for(int i=0;i<maxLength +1;i++){
  newWord+= "z";            
}