最初の文字列にある2番目の文字列から文字を削除するプログラムを作成しました。複雑さはBigO(n^2)になります。複雑さをさらに減らすことはできますか?最初の文字列にある2番目の文字列の文字を削除します。
public class Tmp {
public static void main(String[] args) {
String s = "halloween";
String s1 = "halcyon";
char[] ss = s.toCharArray();
char[] ss1 = s1.toCharArray();
for(int i=0;i<ss.length;i++){
for(int j=0;j<ss1.length;j++){
if(ss1[j] == ss[i]){
ss1[j] = 'x'; //Replace the common char with x
}
}
}
System.out.println(Arrays.toString(ss1));
}
}
OUTPUT
[x, x, x, c, y, x, x]
あなたのコードをコードレビューに入れて、より良い結果を得ることができます。 http://codereview.stackexchange.com/ –
はい、それを 'O(n log n)'に減らすことができます。 –
string1のすべての文字をセット( 'O(n)')に追加します。次に、string-2の各文字について、set-1で 'contains()'を使用し、そのcharがあれば 'x'に設定します( 'O(n)') – TheLostMind