首页 > 试题广场 >

最大数

[编程题]最大数
  • 热度指数:6035 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个包含大写英文字母和数字的句子,找出这个句子所包含的最大的十六进制整数,返回这个整数的值。数据保证该整数在int表示范围内

示例1

输入

"012345BZ16"

输出

1193051

说明

12345B对应十进制为1193051

备注:
0<字符串长度<=105
class Solution:
    def solve(self , s ):
        # write code here
        res = ''.join(list(map(lambda x: x if 48<=ord(x)<=57&nbs***bsp;65<=ord(x)<=70 else "#", s)))
        res = res.split("#")
        res = list(map(lambda x:int(x, 16) if x != '' else 0, res))
        return max(res)
发表于 2020-08-20 23:16:17 回复(0)
class Solution:
    def solve(self , s ):
        # write code here
        if(s==None):
            return;
        _range=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
        s_splited = s[self.startSplit(s):]
        temp = []
        ts = ''
        for i in s_splited:
            if i in _range:
                ts+=i
            else:
                temp.append(ts)
                ts = ''
        return(max([int(i,16) for i in temp if i!='']))

    def startSplit(self,s_list):
        # 首个可表示十六进制字符下标
        _range=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
        for i in s_list:
            # print(i)
            if i in _range:
                return s_list.index(i)
                break
发表于 2020-07-26 20:20:56 回复(0)

问题信息

难度:
3条回答 6725浏览

热门推荐

通过挑战的用户

查看代码