coderbyte.com から次の問題を解決しようとしています。
JavaScript 言語を使用して、関数 SimpleSymbols(str) に渡された str パラメーターを取得させ、文字列 true または false を返すことによって、それが受け入れ可能なシーケンスであるかどうかを判断します。str パラメーターは + 記号と = 記号で構成され、その間に複数の文字が含まれます (つまり、++d+===+c++==a)。文字列が true であるためには、各文字が + 記号で囲まれている必要があります。したがって、左側の文字列は false になります。文字列は空ではなく、少なくとも 1 つの文字が含まれます。
以下は私の試みです:
function SimpleSymbols(str) {
// code goes here
var abc = 'abcdefghijklmnopqrstuvwxyz';
for (var i = 0; i < str.length; i++) {
if (abc.indexOf(str[i]) !== -1) {
if (str[i-1] + str[i+1] === "++") {
return true;
}
else {
return false;
}
}
}
}
これは、次の場合に機能します。
SimpleSymbols("+a+d+"); // true
SimpleSymbols("+ab+d+"); // false
SimpleSymbols("b+d+"); // false
これが正しい答えを提供しない唯一のケースは、末尾に文字がある場合です。たとえば、次のようになります。
SimpleSymbols("+a+b"); // true
これは true を返しますが、実際には false を返す必要があります。
注意: 文字列は小文字になると想定しています...大文字と小文字の区別については扱っていませんが、小文字バージョンを機能させたいので、大文字と小文字を区別しないようにします。
私のコードの何が問題なのかについてのアイデアはありますか?