美文网首页
LeetCode集合

LeetCode集合

作者: 小胖子善轩 | 来源:发表于2021-09-03 03:19 被阅读0次

    https://leetcode.com/problems/roman-to-integer/submissions/

    class Solution(object):
        
        SymbolValue = {
            "I": 1,
            "II": 2,
            "III": 3,
            "IV": 4,
            "V": 5,
            "VI": 6,
            "VII": 7,
            "VIII": 8,
            "IX": 9,
            "X": 10,
            "XX": 20,
            "XXX": 30,
            "XL": 40,
            "L": 50,
            "LX": 60,
            "LXX": 70,
            "LXXX": 80,
            "XC": 90,
            "C": 100,
            "CC": 200,
            "CCC": 300,
            "CD": 400,
            "D": 500,
            "DC": 600,
            "DCC": 700,
            "DCCC": 800,
            "CM": 900,
            "M": 1000,
            "MM": 2000,
            "MMM": 3000
        }
        
        SymbolList = [ "MMM", "MM", "M", "CM", "DCCC", "DCC", "DC", "D", "CD", "CCC", "CC", "C", "XC", "LXXX", "LXX", "LX", "L", "XL", "XXX", "XX", "X", "IX", "VIII", "VII", "VI", "V", "IV", "III", "II", "I"]
        
        def romanToInt(self, s):
            """
            :type s: str
            :rtype: int
            """
            res = 0
            idx = 0
            terminal = len(s)
            while idx < terminal:
                
                offset = 0
                for symbol in self.SymbolList:
                    _len_symbol = len(symbol)
                    if symbol == s[idx:idx + _len_symbol]:
                        offset = _len_symbol
                        res = res + self.SymbolValue[symbol]
                        break
                
                idx += offset
            
            return res
            
            
            
            
    

    https://leetcode.com/problems/longest-common-prefix/submissions/

    class Solution(object):
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            
            if len(strs)  == 1:
                return strs[0]
            
            prefix = strs[0]
            _len_prefix = len(prefix)
            
            Res = ""
            
            for i in range(_len_prefix, 0 , -1):
                
                Temp = prefix[0:i]
                flag = True
                for j in range(1, len(strs), 1):
                    TempStrs = strs[j][0:i]
                    if Temp != TempStrs:
                        flag = False
                        break
                
                
                if flag is True:
                    Res = Temp
                    break
            
            return Res
                
            
            
    

    https://leetcode.com/problems/valid-parentheses/submissions/

    
    class Solution(object):
        def isValid(self, s):
            """
            :type s: str
            :rtype: bool
            """
            stack = []
            for c in s:
                
                if len(stack) == 0:
                    stack.append(c)
                    continue
                    
                top = stack.pop()
                
                
                if c == ")" or c == "]" or c == "}":
                    temp = "%c%c"%(top, c)
                    if temp == "()" or temp == "[]" or temp == "{}":
                        pass
                    else:
                        stack.append(top)
                        stack.append(c)
                else:
                    stack.append(top)
                    stack.append(c)
            
            if len(stack) > 0:
                return False
            else:
                return True
                    
                
    

    相关文章

      网友评论

          本文标题:LeetCode集合

          本文链接:https://www.haomeiwen.com/subject/lzyhwltx.html