首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

3.31第一次编程实践C题题解

C.十六进制

01.

Description

Time limit per test:1.0 seconds

Memory limit:256 megabytes

输入一个字符串,提取字符串中的所有 16 进制数码字符,并转化成十进制整数输出。16 进制的合法表示为:以0x开头,后面是0-9和a-f构成的字符串,可能会在开头出现多个 0。

说明:

保证输入字符串不会出现两个十六进制数首尾相接的情况。即不会出现类似0x100xa的字符串(因为0x100和0xa都是十六进制数)。

在保证第一点的前提下,保证提取出来 16 进制数在unsigned int范围内。

02.

Input, Output and Examples

Input

输入一个长度不超过 105 的字符串,由小写英文字母和数字构成。

对于 70% 的字符串,长度不超过 1000。

Output

输出请按照输入中出现的顺序。

如果字符串中没有合法的 16 进制数码。则输出 −1。

如果字符串中有多个合法的 16 进制数,则依次输出,中间用一个空格分隔。

Examples

input

0xax

output

10

input

0x13g0x10a

output

19 266

input

0xerts

output

14

input

190a

output

-1

03.

Analysis

本题直接按顺序模拟就可以。例如读到一个“0x”,直接从下一位开始读入数字,直到读到第一个非16进制数为止,然后继续搜索下一个“0x”。注意边界条件判断:如最末尾两个字符不可能构成一个十六进制数,注意像0x30xq0x80x这样的情况。

04.

Code

图文:李英韬

排版:吴学懿

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180401G1DXQZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券