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 字符串 (基础三)的主要内容,如果未能解决你的问题,请参考以下文章

Python基础知识汇总(字符串三)

python 字符串 (基础三)

python 字符串 (基础三)

python 字符串 (基础三)

python 字符串 (基础三)

python基础三(字符串)