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