这里写目录标题
- 一、344. 反转字符串
- 二、125. 验证回文串
- 三、205. 同构字符串
- 四、242. 有效的字母异位词
- 五、290. 单词规律
一、344. 反转字符串
简单
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
示例 1:
输入:s = [“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]
示例 2:
输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]
输出:[“h”,“a”,“n”,“n”,“a”,“H”]
def func344(nums):for i in range(len(nums) // 2):nums[i], nums[len(nums) - i - 1] = nums[len(nums) - i - 1], nums[i]return numsnums = ["H", "a", "n", "n", "a", "h"]
res = func344(nums)
print(res)
二、125. 验证回文串
简单
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。字母和数字都属于字母数字字符。
给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。
示例 1:
输入: s = “A man, a plan, a canal: Panama”
输出:true
解释:“amanaplanacanalpanama” 是回文串。
示例 2:
输入:s = “race a car”
输出:false
解释:“raceacar” 不是回文串。
示例 3:
输入:s = " "
输出:true
解释:在移除非字母数字字符之后,s 是一个空字符串 “” 。由于空字符串正着反着读都一样,所以是回文串。
class Solution:def func(self, s):s = s.lower()left = 0right = len(s) - 1while left < right:while left < right and not s[left].isalpha():left += 1while left < right and not s[right].isalpha():right -= 1if s[left] != s[right]:return Falseleft += 1right -= 1return Truess = Solution()
s = " "
print(ss.func(s))
三、205. 同构字符串
简单
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
输入:s = “egg”, t = “add”
输出:true
示例 2:
输入:s = “foo”, t = “bar”
输出:false
示例 3:
输入:s = “paper”, t = “title”
输出:true
class Solution:def func205(self,s,t):d={}for i in range(len(s)):if s[i] not in d:if t[i] in d.values():return Falseelse:d[s[i]]=t[i]else:if d[s[i]]!=t[i]:return Falsereturn True
s = "paper"
t = "title"
r=Solution()
print(r.func205(s, t))
四、242. 有效的字母异位词
简单
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
class Solution1:def func(self, s, t):ss = Counter(s)tt = Counter(t)if ss == tt:return Truereturn Falses = Solution1()
s1 = "rat"
t1 = "car"
print(s.func(s1, t1))
五、290. 单词规律
简单
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。
示例1:
输入: pattern = “abba”, s = “dog cat cat dog”
输出: true
示例 2:
输入:pattern = “abba”, s = “dog cat cat fish”
输出: false
示例 3:
输入: pattern = “aaaa”, s = “dog cat cat dog”
输出: false
class Solution:def func(self,pattern,s):ss=s.split()d={}for i in range(len(pattern)):if pattern[i] not in d:if ss[i] in d.values():return Falseelse:d[pattern[i]]=ss[i]else:if d[pattern[i]]!=ss[i]:return Falsereturn True
r=Solution()pattern = "aaaa"
s = "dog cat cat dog"
print(r.func(pattern, s))