2017-08-21 10 views
2

次の文字列を辞書順に取得したいアルゴリズムを生成したい。文字列のリストを辞書順に昇順で作成する

私はそれは

['a','b'....'z'] 

である長さ26のリストを生成したいとしは今、私は長さ260のリストを生成したいと、それは、アルゴリズムのこのタイプ

['a0','a1','a2'...'a9','b1'....'z0'....'z9'] 

きています最大限界。しかし、私はそのようなタイプの制限を望まない。それは10000または1百万であるかもしれません。

要件

アルゴリズムの引数は、それによって発生するとして以前に文字列が渡されるように動作するはずです。そして、次の文字列を辞書順に生成する必要があります。そして、私は(1503314045645)

おかげ

+0

文字列を増やすことは現実にはそれほど有用ではないので、https://stackoverflow.com/questions/43356549/auto-incrementing-alphanumericsequence/43358781#43358781 –

+1

もご覧ください。また、1番目のケースでは、 '['a'、 'aa'、...、 'aaa ... aaa(26 times)']'? (私は 'aa'は' b'より字句的に小さいと信じています) – vish4071

答えて

0

何ベース36フォーマットされた整数を使用する方法について、タイムスタンプを使用したくありませんか? これは、Javaで次のようになります。

String next(String prev) { 
    if(prev==null) { 
    return "0"; 
    } 
    return Integer.toString(Integer.parseInt(prev, 36), 36); 
} 

あなたが値を格納するための単純な整数を使用している場合、実際それも良いでしょうし、単にそれをあなたが次の値を必要とするたびに増加し、にベース36を使用して整数をフォーマット文字列:このソリューションで

Integer.toString(++value, 36); 

次のトークンを取得しますので、数字は、出力内の文字の前にある: A7、A8、A9、AA、AB、...斧、AY、AZを、b0、b1 ... zx、zy、zz、100,101

最初に文字を入力したい、あるいは特定の順序や余分な文字が必要な場合は、Matt Timmermansのリンクの背後にあるソリューションを使用してください。

関連する問題