67,513
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
public class GenerateCombination {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(System.in);
String scannerNextLine = "";
while ((scannerNextLine = scanner.nextLine()) != null &&
scannerNextLine.length() > 0) {
SortedSet<String> combinationSet = new TreeSet<String>();
generateCombination(scannerNextLine, "$", combinationSet);
printCombination(combinationSet);
}
scanner.close();
} catch (Exception e) {
System.out.println(e);
} finally {
}
}
public static void generateCombination(
final String inputString,
final String replaceSymbol,
Set <String> combinationSet) {
String allReplaceSymbolString = "";
for (int inputStringIndex = 0; inputStringIndex < inputString.length(); inputStringIndex++) {
allReplaceSymbolString = allReplaceSymbolString.concat(replaceSymbol);
}
combinationSet.add(inputString);
while (!combinationSet.contains(allReplaceSymbolString)) {
SortedSet<String> appendSet = new TreeSet<String>();
for (String combinationString : combinationSet) {
char[] combinationCharArray = combinationString.toCharArray();
for (int combinationCharIndex = 0;
combinationCharIndex < combinationCharArray.length;
combinationCharIndex++) {
char combinationChar = combinationCharArray[combinationCharIndex];
combinationCharArray[combinationCharIndex] = replaceSymbol.charAt(0);
appendSet.add(String.valueOf(combinationCharArray));
combinationCharArray[combinationCharIndex] = combinationChar;
}
}
combinationSet.addAll(appendSet);
}
}
public static void printCombination(final Set<String> combinationSet) {
String printString = "";
for (String combinationString : combinationSet) {
printString += "\"" + combinationString + "\",";
}
if (printString.length() > 0) {
System.out.println(printString.substring(0, printString.length() - 1) + ".");
}
}
}
好吧,这次输出完全满足题目要求了
输入:abc
输出:"$$$","$$c","$b$","$bc","a$$","a$c","ab$","abc".
public static void main(String[] args) {
String str = "a,b,c,d,e";
List<String> strs=new ArrayList<String>();
for (int i = 0; i < str.length(); i++) {
if (i%2==0) {
strs.add(str.replace(""+str.toCharArray()[i], "$"));
}
}
System.out.println(strs);
}
import java.util.*;
public class GenerateCombination {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(System.in);
String scannerNextLine = "";
while ((scannerNextLine = scanner.nextLine()) != null &&
scannerNextLine.length() > 0) {
SortedSet<String> combinationSet = new TreeSet<String>();
generateCombination(scannerNextLine, "$", combinationSet);
printCombination(combinationSet);
}
scanner.close();
} catch (Exception e) {
System.out.println(e);
} finally {
}
}
public static void generateCombination(
final String inputString,
final String replaceSymbol,
Set <String> combinationSet) {
String allReplaceSymbolString = "";
for (int inputStringIndex = 0; inputStringIndex < inputString.length(); inputStringIndex++) {
allReplaceSymbolString = allReplaceSymbolString.concat(replaceSymbol);
}
combinationSet.add(inputString);
while (!combinationSet.contains(allReplaceSymbolString)) {
SortedSet<String> appendSet = new TreeSet<String>();
for (String combinationString : combinationSet) {
char[] combinationCharArray = combinationString.toCharArray();
for (int combinationCharIndex = 0;
combinationCharIndex < combinationCharArray.length;
combinationCharIndex++) {
char combinationChar = combinationCharArray[combinationCharIndex];
combinationCharArray[combinationCharIndex] = replaceSymbol.charAt(0);
appendSet.add(String.valueOf(combinationCharArray));
combinationCharArray[combinationCharIndex] = combinationChar;
}
}
combinationSet.addAll(appendSet);
}
}
public static void printCombination(final Set<String> combinationSet) {
for (String combinationString : combinationSet) {
System.out.println(combinationString);
}
}
}
输入:
abc
输出:
$$$
$$c
$b$
$bc
a$$
a$c
ab$
abc