就職インタビューでは、指定された文字列sが2つの他の文字列part1とpart2から形成できるかどうかを確認するアルゴリズムを書くことに挑戦します。コードワードでマージされた文字列チェッカー
part1とpart2の文字は、sと同じ順序であるという制約があります。
インタビュアーは、次の例を挙げて、残りのテストケースを把握するように指示します。例えば
:
'codewarsは' 'CDW' と 'oears' からのマージです:
参照:これはhttps://www.codewars.com/kata/merged-string-checker/train/java
私のJavaコードですが、すべてのテストに合格しませんでしたどこか間違っていますか?ありがとう!
S = cdwzzzcdw
パート1 = CDW
その2 = cdwzzz
を何が起こることはまずあなたがしようということである。
public static boolean isMerge(String s, String part1, String part2) {
s = s.replace(" ","");
part1 = part1.replace(" ","");
part2 = part2.replace(" ","");
int index1 = 0;
int index2 = 0;
char[] cp1 = part1.toCharArray();
char[] cp2 = part2.toCharArray();
for (int i = 0; i < s.length();) {
char is = s.charAt(i);
if (index1 < cp1.length && cp1[index1] == is) {
index1++;
i++;
continue;
}
if (index2 < cp2.length && cp2[index2] == is) {
index2++;
i++;
continue;
}
return false;
}
return s.length() == index1 + index2;
}
デバッガでコードを実行したとき、何を発見しましたか? –
'return false'の行を考えてみましょう。 – Queue