まず、問題の要件と制約を分析しましょう。問題では、与えられた文字列が特定のパターンに一致する場合に「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」問題の解法と説明です。この方法を使用すれば、与えられた文字列から特定のパターンを検索し、一致するかどうかを判定することができます。