私は最近、ソフトウェア エンジニアリングの職について Google との面接を受けました。その質問は、パターン マッチャーの構築に関するものでした。
したがって、ビルドする必要があります
boolean isPattern(String givenPattern, String stringToMatch)
次の機能を実行します。
givenPattern
以下を含む文字列です。
a) 'a'-'z' chars
b) '*' chars which can be matched by 0 or more letters
c) '?' which just matches to a character - any letter basically
したがって、呼び出しは次のようになります
isPattern("abc", "abcd")
- パターンに一致しないため、false を返します (「d」は余分です)。
isPattern("a*bc", "aksakwjahwhajahbcdbc")
、最初に「a」があり、その後に多くの文字があり、「bc」で終わるため、これは当てはまります
isPattern("a?bc", "adbc")
指定された文字列でパターンの各文字が一致するため、true を返します。
インタビュー中、短い時間だったので、パターンを見て、文字が文字、*、または ? であるかどうかを確認できると考えました。次に、指定された文字列内の文字をそれぞれ照合します。しかし、それは複雑な一連の for ループになってしまい、与えられた 45 分以内に結論を出すことができませんでした。
この問題を迅速かつ効率的に解決する方法を教えてください。
どうもありがとう!