私はTSP問題の解決に取り組んでいます。「123456」のすべての順列を生成しましたが、これを次のようなものString
に変換する必要があります[1,2,3,4,5,6] ...[6,5,4,3,2 、1]。次に、これをのに保存します。そこに着いたら、旅行する必要のあるすべての都市を比較できるようになります。ArrayList
Integer
ArrayList
ArrayLists
コードを実行すると、順列を生成するメソッドがあり、次にその順列をのに変更するメソッドがArrayList
ありInteger
ます。それらを変換すると、例外が発生しますjava.lang.NumberFormatException: For input string: ""
。String
私はに到達する他の方法を知りませんInteger
これが私のコードです。
public static String permute(String begin, String string){
if(string.length() == 0){
stringToIntArray(begin+string);
return begin + string + " ";
}
else{
String result = "";
for(int i = 0; i < string.length(); ++i){
String newString = string.substring(0, i) + string.substring(i+1, string.length());;
result += permute(begin + string.charAt(i), newString);
}
stringToIntArray(result);
return result;
}
}
public static void stringToIntArray(String s){
ArrayList<Integer> perm = new ArrayList<Integer>();
String [] change = s.split("");
for(int i = 0; i < 7; ++i){
int integer = Integer.parseInt(change[i]);
System.out.println(integer);
}
}
public static void main(String[] args) {
permute("", "123456");
}