【LeetCode刷题】14 最长公共前缀 || 58 最后一个单词长度

14、最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”

示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。

class Solution(object):
    def longestCommonPrefix(self, strs):
        result = ''

        if len(strs) > 0:
            for i, each in enumerate(strs[0]):
                for string in strs[1:]:
                    if i < len(string) and each == string[i]:
                        continue
                    else:
                        return result
                result += each
            return result
        else:
            return result
# longest-common-prefix
class Solution(object):

    def longestCommonPrefix(self, strs):
        if len(strs) == 0 or strs[0] == '':
            return ''
        if len(strs) == 1:
            return strs[0]
        m = min([len(x) for x in strs])
        # m = len(min(strs))
        for j in range(m):  #数组中最短的字符串长度
         #从第二个字符串开始判断第1-m个元素是否与第一个的相同,不同则记录下来
            for i in range(1, len(strs)):  
                if strs[0][j] != strs[i][j]:
                    return strs[0][:j]
        return strs[0][:m]


if __name__ == '__main__':
    print(Solution().longestCommonPrefix(["abca", "aba", "aaab"]))

58、最后一个单词的长度

给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。

示例:
输入: “Hello World”
输出: 5

class Solution(object):
    def lengthOfLastWord(self, s):

        # 方法一:

        # s1 = list(s)
        # s2 = s.split()
        # if s1[-1] ==' ':
        #     return 0
        # else:
        #     return len(s2[-1])

        #方法二

        count = 0
        for i in s[::-1]:
            if i == ' ' and count != 0:
                return count
            elif i != ' ':
                count += 1
        return count

#一个一个字符判断,如果是空字符并且前边累计n个字符,则这n个字符长度就是单词长度

print(Solution().lengthOfLastWord("hello world"))

总结

在循环的过程中,我们引入条件判断语句吗,如果满足了某种情况,则我们返回一个值,通常我们判断的是不符合一种情况,最后在循环外返回全部符合情况下的值(或者相反)!

m = min([len(x) for x in strs])
#求字符串数组最小长度的元素
发布了77 篇原创文章 · 获赞 11 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览