私は以下の質問に問題があります。私は基本的に、str1の一部がstr2に再配置できる場合にtrueを返すコード/関数を記述する必要があります。str1の一部をstr2に再配置できる場合にtrueを返す関数の記述方法は?
str1文字の一部をstr2と一致するように並べ替えることができる場合はtrueを返し、そうでない場合はfalseを返す書き込み関数scramble(str1、str2)。
例: str1は 'rkqodlw'で、str2は 'world'です。出力はtrueを返します。 str1が 'cedewaraaossoqqyt'で、str2が 'codewars'であればtrueを返します。 str1は 'katas'で、str2は 'steak'でfalseを返します。
小文字のみが使用されます(a〜z)。句読点や数字は含まれません。 パフォーマンスを考慮する必要があります。以下は
私が持っている現在のコードです:
function scramble(str1, str2) {
var first; //longer string
var second; //shorter string
if(str1 || str2 === "undefined") {
return false;
}
if(str1.length > str2.length) {
first = str1;
second = str2
} else if(str2.length > str1.length) {
first = str2;
second = str1;
}
for (i=0; i<second.length; i++) {
if (first.indexOf(second[i]) === -1) {
return false;
}
}
return true;
}
あなたはこの質問で私を助けていただけますか?
私は混乱しているstr2' 'のすべての文字がstr1''であり、そうであれば、trueを返す場合、それだけでチェックするような単純なものではないでしょうか? – adeneo
また、 'if(str1 || str2 ===" undefined "){'はおそらくあなたがしていると思っていることをしていません –