我試圖找到最佳的解決方案來解決這個問題:
輸入:
String1 = "algrtvy";
String2 = "alg";
String3 = "gvy";
String4 = "mgr";
String5 = "aall";
str2,3,4,5的字符是否包含在1中?
輸出
true
true
false
false
所以,我不檢查序列(子串),但對於單個字符。
任何提示? 我正在尋找計算時間的禁食解決方案。
解決方案:
該解決方案是從@ davidxxx的回答已實施的版本。
public boolean haveChars(String longerString, String shorterString) {
String chars = longerString;
for (char c : shorterString.toCharArray()){
int index = chars.indexOf(c);
if (index == -1) {
return false;
} else {
chars = chars.substring(0,index) + chars.substring(index + 1);
}
}
return true;
}
我不認爲這是因爲OP不需要檢查子重複。 OP檢查子序列。 –
問題陳述有誤導性。 「Contained in」表示子字符串,但「String3」的「true」輸出表明它與單個字符有關。 – jsheeran
它不是重複的@EnzoNocera,我不尋找一個子字符串,我正在尋找字符檢查。 –