feat(392-is-subsequence): added py3 soln and readme
This commit is contained in:
parent
58eb2306f2
commit
106aac6492
25
0392_is-subsequence/README.md
Normal file
25
0392_is-subsequence/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
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 `"abcde"` while `"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 <= 104`
|
||||||
|
- `s` and `t` consist only of lowercase English letters.
|
||||||
|
|
||||||
|
Follow up: Suppose there are lots of incoming `s`, say `s1, s2, ..., sk` where `k >= 109`, and you want to check one by one to see if `t` has its subsequence. In this scenario, how would you change your code?
|
37
0392_is-subsequence/python3/main.py
Normal file
37
0392_is-subsequence/python3/main.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
class Solution:
|
||||||
|
def isSubsequence(self, s: str, t: str) -> bool:
|
||||||
|
slen = len(s)
|
||||||
|
tlen = len(t)
|
||||||
|
si = 0
|
||||||
|
ti = 0
|
||||||
|
|
||||||
|
# If s is longer than t, it's obviously not
|
||||||
|
# going to be a subsequence
|
||||||
|
if slen > tlen:
|
||||||
|
return False
|
||||||
|
|
||||||
|
while ti < tlen and si < slen:
|
||||||
|
found = False
|
||||||
|
|
||||||
|
while ti < tlen:
|
||||||
|
if s[si] == t[ti]:
|
||||||
|
found = True
|
||||||
|
ti += 1
|
||||||
|
break
|
||||||
|
|
||||||
|
ti += 1
|
||||||
|
|
||||||
|
if not found:
|
||||||
|
return False
|
||||||
|
|
||||||
|
si += 1
|
||||||
|
|
||||||
|
# We reached end of t but we still have
|
||||||
|
# characters remaining in s and hence
|
||||||
|
# it's not a subsequence
|
||||||
|
if si < slen:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user