# 392. Is Subsequence

# Problem

Given two strings `s`

and `t`

, return `true`

* if *`s`

* is a subsequence of *

`t`

*, or*

`false`

*otherwise*.

A **subsequence** of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., `"ace"`

is a subsequence of `"`

while __a__b__c__d__e__"`"aec"`

is not).

**Example 1:**

**Input:** s = "abc", t = "ahbgdc" **Output:** true

**Example 2:**

**Input:** s = "axc", t = "ahbgdc" **Output:** false

**Constraints:**

`0 <= s.length <= 100`

`0 <= t.length <= 10`

^{4}`s`

and`t`

consist only of lowercase English letters.

**Follow up:** Suppose there are lots of incoming `s`

, say `s`

where _{1}, s_{2}, ..., s_{k}`k >= 10`

, and you want to check one by one to see if ^{9}`t`

has its subsequence. In this scenario, how would you change your code?

# Solution

```
class Solution(object):
def isSubsequence(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if not s:
return True
index = 0
for i in t:
if index > len(s) - 1:
break
if i == s[index]:
index += 1
return len(s) == index
```