算法(4):字符串

2019-03-12  本文已影响0人  大王叫我来巡老和山

  最近两天有点高产(只是说高数量,不是指高质量......),希望可以坚持下去,至少把这个算法系列先写完,给自己来点成就感......



字符串(String)

  字符串可以简单理解为一个 存放 unicode 编码的字符数组。大家可以对字符串执行几乎所有数组可以执行的操作。但是两者之间肯定是有一些不同之处的,甚至在不同语言当中,字符串的特性也会有所区别(如让人迷惑的 ‘==’ 操作)。当然,本算法系列主要针对python语言做讲解~
  不过,还是会简单说一下不同语言下string的区别~


问题1:求几个字符串的最长公共前缀( longest common prefix)
例子:
输入: ["flower","flow","flight"]
输出: "fl"

def longestCommonPrefix( strs: list) -> str:
    if not strs:
        return ""

    for i, letter_group in enumerate(zip(*strs)):
        if len(set(letter_group)) > 1:
            return strs[0][:i]
    else:
        return min(strs)

if __name__ == '__main__':
    s = ["flower","flow","flight"]
    ans = longestCommonPrefix(s)
    print(ans)

问题2:翻转字符串中的单词(Reverse Words in a String),字符串是一个句子,由若干单词组成,每个单词之间由空格隔开,现在要将字符串中单词翻转,例子如下。
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
用python内置函数很容易就写出来。

def reverseString( s: str) -> str:
    a = s.split()
    for i, j in enumerate(a):
        a[i] = a[i][::-1]
    return ' '.join(a)

if __name__ == '__main__':
    s = "Let's take LeetCode contest"
    ans = reverseString(s)
    print(ans)

问题3

没找到啥有趣的好题,例题先放放,我看到了有趣的会立刻补上来。

问题4



问题5



上一篇 下一篇

猜你喜欢

热点阅读