У меня возникли трудности с созданием этого кода ряда перестановок (упорядочений) для строки, разделенной запятыми ... Я могу сделать обычную строку и перестановки работать только с буквами, но это немного больше сложно делать это со словами, разделенными запятыми ...
Чтобы программа распознала запятые, я использовал метод 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
Обратите внимание, что на входе было всего 3 строки, включая пустую строку после «один, два, три», в то время как на выходе было всего 11 строк, включая одну пустую строку после «желтый, красный» и две пустые строки после «три», два один". Очень важно, чтобы вы получили правильный формат, поскольку тестирование будет автоматизировано и потребует этот формат. Также обратите внимание, что порядок вывода строк для каждой задачи не имеет значения. Это означает, что первые две строки вывода также могли быть:
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;
}
}
}