字符串

Posted 铁树小寒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串相关的知识,希望对你有一定的参考价值。

1.字符串的旋转

给定一个字符串,要求将字符串前面的若干个字符一刀字符串的尾部。

蛮力位移

def shift_one(str_a, length):
    list_a = []
    for i in str_a:
        list_a.append(i)
    t = list_a[0]
    for i in range(length-1):
        list_a[i] = list_a[i+1]
    list_a[length-1] = t
    return ‘‘.join(list_a)


def rotate_string(str_a, length, m):
    for i in range(m):
        str_a = shift_one(str_a, length)
    return str_a

 

三步反转

def reverse_string(str_a, begin, end):
    list_a = []
    for i in str_a:
        list_a.append(i)
    while begin < end:
        list_a[begin], list_a[end] = list_a[end], list_a[begin]
        begin += 1
        end -= 1
    str_b = ‘‘.join(list_a)
    return str_b


def rotate_string(str_a, length, m):
    m = m % length
    str_a1 = reverse_string(str_a, 0, m-1)
    str_a2 = reverse_string(str_a1, m, length-1)
    str_a3 = reverse_string(str_a2, 0, length-1)
    return str_a3

转化步骤是因为Python中字符串是不可变的,需要先转化为list类型。

 

2.字符串的包含

给定一个长字符串和一个短字符串,如何最快的判断出短字符串中的所有字符是否都在长字符串a中。

蛮力轮询

def string_contain(str_a, str_b):
    for i in str_b:
        count = 0
        for j in str_a:
            if i == j:
                break
            count +=1
            if count == len(str_a):
                return False
    return True

排序后轮询

 

3.字符串的全排列

输入一个字符,打印出该字符串中字符的所有排列。

例如输入字符串‘abc’,则输出有字符a,b,c所能排列出的所有字符串。

递归实现

字典序排列

4.字符串转换成整数

输入一个由数字组成的字符串,请把它转换成整数并输出。

5.回文判断

给定一个字符串,如何判断这个字符串是否是回文串。

两头往中间扫

 

6.最长回文子串

给定一个字符串,求它的最长回文子串的产长度。

 

以上是关于字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码片段

JavaScript 代码片段

CSP核心代码片段记录

带有神秘附加字符的 Javascript Date getTime() 代码片段

web代码片段

vs code 自定义代码片段