Menu
CoddyTech

Is Subsequence

やさしい2つのポインタpython iconjava iconcpp iconc iconjs icon+10

2つの文字列 s と t が与えられます。t の文字をいくつか(0個でも可)削除し、残った文字の順序を保ったまま s にできる場合は true を、そうでない場合は false を返してください。たとえば、ace は abcde の部分列ですが、aec はそうではありません。

関数

isSubsequence(s: string, t: string) → boolean
sstring
検索する文字列
tstring
文字を削除する対象の文字列
戻り値boolean
間に抜けがあっても、s を t の中から順番どおりに読み取れる場合は true

制約

  • 1 ≤ s.length ≤ 3 × 104
  • 1 ≤ t.length ≤ 5 × 104
  • s と t には小文字の英字のみが含まれています。

例

入力
s = "ace"t = "abcde"
出力
true
説明
abcde から b と d を削除すると、ace が同じ順序で残ります。

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

challenge icon

発展問題

t が変わらないままで、100万個の異なる文字列 s をそれと照合する必要があるとします。毎回 t 全体を読み直すよりも速く照合できるように、t をどのように準備しますか?

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

ケース1

ケース2

ケース3

入力

s = "ace"
t = "abcde"

期待値

true