このコードで、コンマで区切られた文字列に多数の順列 (順序付け) を生成するのに苦労しています...通常の文字列だけを実行し、順列を文字だけで機能させることはできますが、実行するときは少し難しくなりますコンマで区切られた単語で...
プログラムにコンマを認識させるために、StringTokenizer メソッドを使用し、それを arrayList に入れていますが、それは実際に私が得た限りです...ここでも問題は、各単語を並べ替えるのに問題があることです...例を挙げて、この下に投稿し、その下に私のコードを投稿します...皆さんの助けに感謝します! ...そして順列とは、コンマで区切られた単語の順序を意味します
たとえば、BufferedReader で受信する入力が次のようになっているとします。
red,yellow
one,two,three
PrintWriter の出力は次のようになります。
red,yellow
yellow,red
one,two,three
one,three,two
two,one,three
two,three,one
three,one,two
three,two,one
入力には「one,two,three」の後の空白行を含む合計 3 行があり、出力には「yellow,red」の後の空白行 1 行と「three,two,one」の後の空白行 2 行を含む合計 11 行あることに注意してください。 "。テストは自動化され、この形式が必要になるため、正確に正しい形式を取得することが重要です。また、各問題の出力行の順序は重要ではないことに注意してください。これは、出力の最初の 2 行も次のようになる可能性があることを意味します。
yellow,red
red,yellow
ここに私がこれまでに持っているコードがあります...いくつかのものをコメントアウトしたので、それらの部分について心配する必要はありません
import java.io.*;
import java.util.*;
public class Solution
{
public static void run(BufferedReader in, PrintWriter out)
throws IOException
{
String str = new String(in.readLine());
while(!str.equalsIgnoreCase(""))
{
PermutationGenerator generator = new PermutationGenerator(str);
ArrayList<String> permutations = generator.getPermutations();
for(String str: permutations)
{
out.println(in.readLine());
}
out.println();
out.println();
}
out.flush();
}
public class PermutationGenerator
{
private String word;
public PermutationGenerator(String aWord)
{
word = aWord;
}
public ArrayList<String> getPermutations()
{
ArrayList<String> permutations = new ArrayList<String>();
//if(word.length() == 0)
//{
//permutations.add(word);
//return permutations;
//}
StringTokenizer tokenizer = new StringTokenizer(word,",");
while (tokenizer.hasMoreTokens())
{
permutations.add(word);
tokenizer.nextToken();
}
/*
for(int i = 0; i < word.length(); i++)
{
//String shorterWord = word.substring(0,i) + word.substring(i + 1);
PermutationGenerator shorterPermutationGenerator = new PermutationGenerator(word);
ArrayList<String> shorterWordPermutations =
shorterPermutationGenerator.getPermutations();
for(String s: shorterWordPermutations)
{
permutations.add(word.readLine(i)+ s);
}
}*/
//return permutations;
}
}
}