HackerRankの10 Days of JavaScriptのRegular Expressions II問題の解法と説明


まず、問題の要件と制約を分析しましょう。問題では、与えられた文字列が特定のパターンに一致する場合に「YES」を、一致しない場合に「NO」を出力する必要があります。具体的には、文字列の先頭が「hackerrank」で始まり、その後に0回以上の任意の文字が続く、そして最後に「hackerrank」で終わるというパターンを検索する必要があります。

解法としては、JavaScriptの正規表現を使用してこのパターンを表現し、文字列に対して正規表現を適用することができます。以下に、具体的なコード例を示します。

function processData(input) {
    const regex = /^hackerrank.*hackerrank$/;
    const result = regex.test(input) ? "YES" : "NO";
    console.log(result);
}

上記のコードでは、/^hackerrank.*hackerrank$/という正規表現パターンを使用しています。^は文字列の先頭を表し、.*は0回以上の任意の文字を表します。そして、$は文字列の末尾を表します。つまり、この正規表現は「文字列の先頭が「hackerrank」で始まり、その後に0回以上の任意の文字が続き、最後に「hackerrank」で終わる」というパターンを表しています。

regex.test(input)は、与えられた文字列inputが正規表現パターンに一致するかどうかを判定するメソッドです。一致する場合はtrueを、一致しない場合はfalseを返します。この結果に基づいて、「YES」または「NO」を出力します。

以上が、「Regular Expressions II」問題の解法と説明です。この方法を使用すれば、与えられた文字列から特定のパターンを検索し、一致するかどうかを判定することができます。