码迷,mamicode.com
首页 > 其他好文 > 详细

字符串

时间:2018-04-16 13:06:28      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:break   如何   输出   组成   contain   col   class   全排列   pytho   

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.最长回文子串

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

 

字符串

标签:break   如何   输出   组成   contain   col   class   全排列   pytho   

原文地址:https://www.cnblogs.com/tsxh/p/8855184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!