私は与えられた単語のセットからアナグラムを並べ替えるアルゴリズムを書くことになっています。今まで私はこれを持っていたアナグラムの並べ替え
誰でもお手伝いできますか?私はソート部分に苦労しています。私は得たコードをどのように使って文字列に変換し、それをアナグラムにソートさせるのか分かりません。
私は与えられた単語のセットからアナグラムを並べ替えるアルゴリズムを書くことになっています。今まで私はこれを持っていたアナグラムの並べ替え
誰でもお手伝いできますか?私はソート部分に苦労しています。私は得たコードをどのように使って文字列に変換し、それをアナグラムにソートさせるのか分かりません。
Vector<String> strings = new Vector<String>();
while ((SLine = br.readLine()) != null) //read the txt.file line by line
{
strings.add(SLine);
System.out.println(SLine); //print out the words
}
これで、文字列をベクターに並べ替えることができます。 別々の関数として、あなたのソートアルゴリズムをクリート:
void sortStrings(Vector<String> strings) {
// ...
}
あなた自身を見つけることができソートacutalを行うにはどのように、avalibleものがたくさんある:What function can be used to sort a Vector?
二つの単語がアナグラムあるかどうかを見つけることはありませんあなたがそれをこのように考えるなら、本当に複雑です:両方の文字列が同じ長さと同じ文字を持つ限り、それらはアナグラムです。
したがって、2つの文字列を取り、これらの文字列を並べ替え、同じインデックスに同じ値があるかどうかをチェックするメソッドを記述する必要があります。これは私がその仕事を残しておきます宿題があるので、この方法が機能するために、文字列をソートする必要があり、など、スペースを含めることはできませんことを、
public boolean isAnagram(String str1, String str2) {
if (str1.length() != str2.length())
return false; // can't be an anagram since not equal length
for (int i = i<str1.length;i++) { // loop thru the string
if (str1.charAt(i) != str2.charAt(i)) // is the char at index i in str1 not equal to char at the same index in str2?
return false;
}
return true;
は注意してください:コードでは、これにまねたものになるだろうあなたが作るために:
どのように配列のリストを並べ替えるよりも、配列のリストにすべての文字列を作る。 あなたが印刷している間に配列リストに追加し、それをソートします..単純なコーディング..
あなたの入力は正確には何を含んでいますか? 1行につき1つの単語、またはすでに並べ替える必要があるいくつかのアナグラム。あるいは、入力語からアナグラムを構築する必要がありますか?建設的な答えを得るには、より正確にする必要があります。 – s1lence