1.单词规律
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。
方法一:双哈希表
#方法一:双哈希表
def wordPattern(pattern,s):
s=s.split()
d1={}
d2={}
if len(pattern)!=len(s):
return False #长度不等不匹配
for i in range(len(pattern)):
if (pattern[i] in d1 and d1[pattern[i]]!=s[i]) or (s[i] in d2 and d2[s[i]]!=pattern[i]):
#不满足双射
return False
d1[pattern[i]]=s[i] #一一对应
d2[s[i]]=pattern[i]
return True
2.反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
方法一:双指针
#方法一:双指针
def reverseString(s):
left,right=0,len(s)-1 #左右指针
while left<right:
tem=s[left]
s[left]=s[right]
s[right]=tem #交换
left += 1
right-=1