首页 > 试题广场 >

最大数

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

示例1

输入

"012345BZ16"

输出

1193051

说明

12345B对应十进制为1193051

备注:
0<字符串长度<=105
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return int整型
 */
int solve(char* s ) {
    // write code here
    int sum=0;
    int max=0;
    for(int i=0;i<strlen(s)-1;i++)
    {
        if(s[i]>='0' &&s[i]<='F')
        {
            if(s[i]>='0'&&s[i]<='9')
            sum=sum*16+s[i]-'0';
            if(s[i]>='A'&&s[i]<='F')
            sum=sum*16+s[i]-'A'+10;
        }
      else
            sum=0;
        max=max>sum?max:sum;//使用max来防止最后出现>‘F’的字符,导致sum=0
    }
    return max;
}
发表于 2021-09-09 03:09:59 回复(0)