0

javascript で coderbyte のコーディング チャレンジを行っています。質問は次のとおりです。JavaScript 言語を使用して、関数 ABCheck(str) に渡された str パラメータを取り、文字 a と b が少なくとも 1 回、文字列内の任意の場所で正確に 3 桁離れている場合に文字列 true を返します (つまり. a と b の間に正確に 3 文字あるため、「レーン借用」は true になります)。それ以外の場合は、文字列 false を返します。

これが私の提案された答えですが、うまくいきません。理由がわかりません... 多くの回答では、文字列を配列に変換していますが、.charAt() でこれを行う方法はありますか? ありがとう!

function ABCheck(str) {
    for (var i=0; i < str.length-4; i++){
        if ((str.charAt(i) == "a") && (str.charAt(i+4) == "b")){
            return true;
        }
    }
};

文字列と str の混同と、str.length の後の「-4」を修正しました。次のケースでまだ問題が発生しています。"after it"、"aaaaddddd"、および "123advb. これらはすべて false である必要があります。どうすればよいですか? ありがとうございます。

4

2 に答える 2

0

はい、正規表現を使用することもできます。これは、b が常に a に続くと仮定しています。

function ABCheck(str)
{
    return str.match(/a...b/g) != null;
}
于 2014-02-26T02:26:25.733 に答える
0

これは多少問題ないように見えますが、タイプミスがあるだけです:

string.charAt(i+4)する必要がありますstr.charAt(i+4)

フィドル: http://jsfiddle.net/chucknelson/UE5rS/

于 2014-02-26T01:47:55.850 に答える