問題:文字列s
から部分文字列t
を繰り返し削除し、同じ手順を実行します。文字列から部分文字列を繰り返し削除する
例:t = ab
,s = aabb
。最初のステップではt
がs
に含まれているかどうかを確認します。ここで、tは中間に含まれ、すなわちa(ab)b
である。そこで、それを除去すると、結果はab
になり、カウント値は1
だけインクリメントされます。 t
がs
に含まれているかどうか再度確認します。今、t
は、s
、すなわち(ab)
に等しい。そこで、それをs
から削除し、カウントを増やします。したがって、t
はs
に含まれていないため、カウント値を停止して印刷します(この場合は2
)。
私は、この使用して再帰
static int maxMoves(String s, String t) {
if (null == s || "" == s || null == t || "" == t){
return 0;
}
int i = s.indexOf(t);
if(i != -1) {
return maxMoves(s.substring(0, i)+ s.substring(i+t.length(), s.length()), t) + 1;
} else {
return 0;
}
}
を解決しようとしましたが、私は9/14のテストケースを渡しています。私もこれを試しました
static int maxMoves(String s, String t) {
int count = 0,i;
while(true)
{
if(s.contains(t))
{
i = s.indexOf(t);
s = s.substring(0,i) + s.substring(i + t.length());
}
else break;
++count;
}
return count;
}
しかし、それはまた9/14のケースを渡しただけです。
私はどのケースをカバーしていないのか分かりませんか?
(https://docs.oracleを[文字列の#は交換してください]。 –
'" "== s' - > [文字列を比較するにはどうすればよいですか?(文字列を比較するにはどうすればよいですか? Javaでは?](https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java)、この場合は 's.isEmpty()'がより明確になります。 – Pshemo
ええ、私はそれを変更しましたが、依然として9/14の症例が合格しています。私は空の文字列がチェックされているとは思わない。 –