ゼロから始めるLeetCode Day66「438. Find All Anagrams in a String」
概要 海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。 どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。 早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。 と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。 ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。 Leetcode Python3で解いています。 ゼロから始めるLeetCode 目次 前回 ゼロから始めるLeetCode Day65「560. Subarray Sum Equals K」 次回 [ゼロから始めるLeetCode Day67 「1486. XOR Operation in an Array」](( https://kueharx.blogspot.com/2020/06/leetcode-day67-1486-xor-operation-in.html ) Twitter やってます。 問題 438. Find All Anagrams in a String 難易度はMedium。 Top 100 Liked Questionsからの抜粋です。 文字列 s と空でない文字列 p が与えられたとき、 s の中の p のアナグラムの開始インデックスをすべて求めなさい、という問題です。 Stringsは英小文字のみで構成され、 s と p の長さはともに20,100を超えてはいけません。 なお、出力の順番は関係ありません。 Example 1: Input: s: “cbaebabacd” p: “abc” Output: [0, 6] Explanation: The substring with start index = 0 is “cba”, which is an anagram of “a