Menu
CoddyTech

Permutation in String

文字列の順列とは、元の文字列と同じ文字を同じ回数ずつ使い、順序を変えたものです。tar、rat、artは互いに順列です。小文字の英字で構成された2つの文字列s1とs2が与えられます。s1の順列のいずれかが部分文字列(連続する文字の並び)としてs2に現れる場合はtrueを、そうでない場合はfalseを返してください。

関数

checkInclusion(s1: string, s2: string) → boolean
s1string
並べ替える文字
s2string
検索対象となる文字列
戻り値boolean
s2 の部分文字列が s1 の並べ替えである場合は true

制約

  • 1 ≤ s1.length ≤ 2 × 104
  • 1 ≤ s2.length ≤ 5 × 104
  • s1 と s2 には、小文字の英字(a から z)のみが含まれます。
  • s1 は s2 より長い場合があります。

例

入力
s1 = "tar"s2 = "smartphone"
出力
true
説明
smartphoneのインデックス2から4までの部分文字列artには、tarと同じ文字であるaが1つ、rが1つ、tが1つ含まれています。

lock icon提出時に隠しテスト+17件

challenge icon

発展問題

引き続きO(m + n)時間で、s1の順列が始まるs2内のすべてのインデックスを返せますか?

コードをリセット
def checkInclusion(s1, s2):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

s1 = "tar"
s2 = "smartphone"

期待値

true