mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-16 23:16:26 +00:00
refactor(work): restructure solution directories with bucket level and add .gitkeep placeholders
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* 125. Valid Palindrome
|
||||
* Difficulty: Easy
|
||||
* https://leetcode.com/problems/valid-palindrome/
|
||||
*
|
||||
* ──────────────────────────────────────────────────
|
||||
*
|
||||
* A phrase is a palindrome if, after converting all uppercase letters
|
||||
* into lowercase letters and removing all non-alphanumeric characters,
|
||||
* it reads the same forward and backward. Alphanumeric characters
|
||||
* include letters and numbers.
|
||||
*
|
||||
* Given a string s, return true if it is a palindrome, or false
|
||||
* otherwise.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Example 1:
|
||||
*
|
||||
* Input: s = "A man, a plan, a canal: Panama"
|
||||
* Output: true
|
||||
* Explanation: "amanaplanacanalpanama" is a palindrome.
|
||||
*
|
||||
* Example 2:
|
||||
*
|
||||
* Input: s = "race a car"
|
||||
* Output: false
|
||||
* Explanation: "raceacar" is not a palindrome.
|
||||
*
|
||||
* Example 3:
|
||||
*
|
||||
* Input: s = " "
|
||||
* Output: true
|
||||
* Explanation: s is an empty string "" after removing non-alphanumeric
|
||||
* characters.
|
||||
* Since an empty string reads the same forward and backward, it is a
|
||||
* palindrome.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Constraints:
|
||||
*
|
||||
* • 1 <= s.length <= 2 * 10^5
|
||||
*
|
||||
* • s consists only of printable ASCII characters.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {string} s
|
||||
* @return {boolean}
|
||||
*/
|
||||
var isPalindrome = function(s) {
|
||||
let normal = s.replace(/[^a-zA-Z0-9]/g, "").toLowerCase()
|
||||
let i = 0, j = normal.length - 1;
|
||||
|
||||
while (i < j) {
|
||||
if(normal[i] !== normal[j]) {
|
||||
return false;
|
||||
}
|
||||
i++;
|
||||
j--;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* 344. Reverse String
|
||||
* Difficulty: Easy
|
||||
* https://leetcode.com/problems/reverse-string/
|
||||
*
|
||||
* ──────────────────────────────────────────────────
|
||||
*
|
||||
* Write a function that reverses a string. The input string is given as
|
||||
* an array of characters s.
|
||||
*
|
||||
* You must do this by modifying the input array in-place with O(1)
|
||||
* extra memory.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Example 1:
|
||||
*
|
||||
* Input: s = ["h","e","l","l","o"]
|
||||
* Output: ["o","l","l","e","h"]
|
||||
*
|
||||
* Example 2:
|
||||
*
|
||||
* Input: s = ["H","a","n","n","a","h"]
|
||||
* Output: ["h","a","n","n","a","H"]
|
||||
*
|
||||
*
|
||||
*
|
||||
* Constraints:
|
||||
*
|
||||
* • 1 <= s.length <= 10^5
|
||||
*
|
||||
* • s[i] is a printable ascii character.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {character[]} s
|
||||
* @return {void} Do not return anything, modify s in-place instead.
|
||||
*/
|
||||
var reverseString = function(s) {
|
||||
let i = 0;
|
||||
let j = s.length - 1;
|
||||
|
||||
while (i < j) {
|
||||
[s[i], s[j]] = [s[j], s[i]];
|
||||
j--;
|
||||
i++;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,57 @@
|
||||
"""
|
||||
392. Is Subsequence
|
||||
Difficulty: Easy
|
||||
https://leetcode.com/problems/is-subsequence/
|
||||
|
||||
──────────────────────────────────────────────────
|
||||
|
||||
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 <= 10^4
|
||||
|
||||
• s and t consist only of lowercase English letters.
|
||||
|
||||
|
||||
|
||||
Follow up: Suppose there are lots of incoming s, say s1, s2, ..., sk
|
||||
where k >= 10^9, and you want to check one by one to see if t has its
|
||||
subsequence. In this scenario, how would you change your code?
|
||||
"""
|
||||
|
||||
|
||||
class Solution:
|
||||
def isSubsequence(self, s: str, t: str) -> bool:
|
||||
if len(s) > len(t):
|
||||
return False
|
||||
|
||||
i, j = 0, 0
|
||||
while i < len(s) and j < len(t):
|
||||
if s[i] == t[j]:
|
||||
i += 1
|
||||
j += 1
|
||||
|
||||
return i == len(s)
|
||||
Reference in New Issue
Block a user