python 字符串 (基础三)
Posted 疯子!!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 字符串 (基础三)相关的知识,希望对你有一定的参考价值。
题目来源:力扣
1. 字符串
字符串反转
输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"]
def reverser_str(s):
s.reverse()
return s
def reverser_str(st):
s[:] = st[::-1]
return s
# 双指针
def reverser_str(s):
start = 0
end = len(s) -1
while start < end:
s[start], s[end] = s[end], s[start]
start += 1
end -= 1
return s
2. 整数的反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2**31, 2**31 − 1] ,就返回 0
输入:x = 123 输出:321 输入:x = -123 输出:-321
def reverse_int(s):
res = ''
# 转换成str
st = str(s)
for i in range(len(st)-1, -1, -1):
if st[i] != '-':
res += st[i]
else:
res = "-" + res
if -2**31 <= int(res) <= 2**31 - 1:
return int(res)
return 0
def reverse_int(x):
s = str(x)
if s[0] == '-':
s_rev = s[0] + s[-1:-len(s):-1]
else:
s_rev = s[::-1]
x_rev = int(s_rev)
if -2**31 <= x_rev <= 2**31 - 1:
return x_rev
return 0
3. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1
输入:s = "aabbl" 输出:4
def firstUniqChar(s):
from collections import Counter
res = Counter(s)
m =[s.index(k) for k, v in res.items() if v ==1]
if m:
return min(m)
return -1
def firstUniqChar(s):
dic = {}
for x in s:
if x not in dic:
dic.update({x:s.count(x)})
for y in dic.keys():
if dic[y] == 1:
return s.index(y)
return -1
"""
Python rfind() 返回字符串第一次出现的位置(从右向左查询),如果没有匹配项则返回-1。
Python find() 返回字符串第一次出现的位置(从左向右查询),如果没有匹配项则返回-1。
str.rfind(str, beg=0 end=len(string))
str.find(str, beg=0 end=len(string))
这里str是查找的字符串,beg=begin,是开始查找的位置,而end是结束位置,一般是字符串的长度
"""
def firstUniqChar(s):
for i in s:
if s.find(i) == s.rfind(i):
return s.find(i)
return s
firstUniqChar(s)
4. 异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词
若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词
输入:s = "anagram" t = "nagram" 输出:False
输入:s = "anagram" t = "anagram" 输出:True
def isAnagram(s1, s2):
return Counter(s1)==Counter(s2)
def isAnagram(s1, s2):
return sorted(s1)==sorted(s2)
def isAnagram(s, t):
s_c, t_c = {}, {}
for k in s:
if k not in s_c.keys():
s_c[k] = 1
else:
s_c[k] += 1
for kk in t:
if kk not in t_c.keys():
t_c[kk] = 1
else:
t_c[kk] += 1
return s_c==t_c
以上是关于python 字符串 (基础三)的主要内容,如果未能解决你的问题,请参考以下文章