题目来源:

2021届字节跳动算法岗笔试题

题目描述:

实现一个RGB字符串(如:rgb(0, 50,255) ),按24位数字对齐后输出对应Integer型数字。R为高位,B为低位。

例如:输入 rgb(0, 50,255) ,输出13055

输入描述:

字符串(如:rgb(0, 50,255) )

输出描述:

输出 number (如:11111)

示例1

输入

rgb(192, 192, 192)

输出

12632256

代码

话不多说直接上代码

思路:题目要求按24位对齐转换,由此想到先把对应r,g,b位的Integer数字转换成16进制,因为r,g,b的取值范围是0-255,大于255也会按255算。正好对应十六进制0x00-0xff,一位16进制又对应4位二进制,六个16进制刚好是24位。之后把转换好的16进制转换为int型就可以了。

当然你也可以把r,g,b位的Integer数字直接转换成三个8位的二进制这样来算。

小提示:

格式化输出 %

%o —— oct 八进制

%d —— dec 十进制

%x —— hex 十六进制

% 不支持二进制转换,

要想实现直接输出二进制可使用 format 函数来实现,或者自己根据需求编写个二进制转换函数。

def RGB_to_Int(Red,Green,Blue):

r, g, b = (Red, Green, Blue)

packed = int('%02x%02x%02x' % (r, g, b), 16)

print(packed)

if __name__ == "__main__":

arr = input("输入数组:")

#截取字符串

str=arr[4:-1]

#获取其中的数字

str2=str.split(',')

#把str转为int,.strip()去除字符串首尾空格

Red=int(str2[0].strip())

Green=int(str2[1].strip())

Blue=int(str2[2].strip())

#调用

RGB_to_Int(Red,Green,Blue)

参考:RGB Int to RGB – Python

容易有疑问的地方

1.字符串中 百分号02x 是什么意思

1)首先该结构符合字符串格式化输出的形式:

“%x%x%x” % (r,g,b)

其中 %x 是十六进制整数

2)其次 %02x 是对 %x 的进一步补充:

% 作为格式化输出的格式符,可以用如下的方式进一步控制:

%[(name)][flags][width].[precision]typecode

(name)为命名;

flags可以有+,-,’ ‘或0。+表示右对齐。-表示左对齐。’

'为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充;

width表示显示宽度;

precision表示小数点后精度;

所以此处 %02x 表示宽度为 2 的十六进制整数、不够 2 位用 0 填充

3)再回顾整体的 “#%02x%02x%02x” 其实就是类似 “#b7bb96” 等 rgb 颜色数据

参考:参考博客

2.%02x与%2x 之间的区别

1)输出最小宽度

用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。

X 表示以十六进制形式输出

02 表示不足两位,前面补0输出;如果超过两位,则实际输出

举例:

printf("%02X", 0x345); //打印出:345

printf("%02X", 0x6); //打印出:06

而如果直接写为 %2x,数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。

printf("%2X", 0x345); //打印出:345

printf("%2X", 0x6); //打印出:6

参考:参考博客

pythonrgb高精度浮点运算类型_python实现RGB字符串,按24位对齐后输出对应Integer行数字...相关推荐

  1. C++primer第五版 编写一段程序,读入一个包含标点符号的字符串,将标点符号去除后输出字符串剩余的部分

    这是一个关于字符串处理的简单程序,但是里面有一些细节是值得关注的.先附上程序: // primer_3_2_3.cpp : Defines the entry point for the applic ...

  2. 问题 C: 1.01 字符串拼接  编写程序实现接收用户输入的两个字符串,将它们组合后输出。

    问题 C: 1.01 字符串拼接 时间限制: 1 Sec 内存限制: 128 MB 提交: 8394 解决: 3559 [提交] [状态] [讨论版] [命题人:lip] 题目描述 编写程序实现接收用 ...

  3. python不支持单字符类型_Python数据类型之字符串

    1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串" str1 = '我也是字符串' ...

  4. python定义字符串类型_Python数据类型之字符串

    1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串" str1 = '我也是字符串' ...

  5. python改变字符串类型_python – Sklearn将字符串类标签更改为int

    我有一个pandas数据帧,我正在尝试将字符串表示的给定列中的值更改为整数.例如: df = index fruit quantity price 0 apple 5 0.99 1 apple 2 0 ...

  6. python字符串类型_python字符串类型介绍

    一. 字符串的写法 1.单引号或双引号 二. 字符串是不会变的 1.字符串不会变,只会新增后再赋值 a = 'ABC' b = a a = 'XYZ' print(b) 结果还是ABC 三. 字符串的 ...

  7. python输入的字符串转换为对应的数字类型_Python合集之Python运算符(四)

    在上一节的合集中,我们了解了Python运算符中的位运算符的相关知识,本节我们将进一步了解一下Python运算符中运算符的优先级级基础的输入输出语法的相关知识. 1. 运算符优先级 Python运算符 ...

  8. python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色

    python使用matplotlib可视化.使用英文单次或者缩写指定使用的颜色.使用16进制的RGB字符串指定颜色.使用RGB或者RGBA数字元组指定颜色 目录

  9. python输入是什么类型_python入门04——输入输出

    一.输入input python3中的input name=input("请输入你的用户名:") # name="egon" print(name,type(n ...

最新文章

  1. 输入输出导入导出问题
  2. arm clz指令c语言,协处理器及其他指令之:零计数指令CLZ-嵌入式系统-与非网
  3. Docker 容器CPU设置
  4. svpwm仿真_三相三线逆变_并网仿真建模
  5. 检测到在集成的托管管道模式下不适用的 ASP.NET 设置, HTTP 错误 500.23 解决方案...
  6. VB.net和c#的区别!
  7. Properties作为Map集合的使用
  8. python人脸识别防小偷_基于python的人脸识别(检测人脸、眼睛、嘴巴、鼻子......)...
  9. Mac上恢复已删除或未保存的Word文档该怎么做
  10. Mysql net start mysql启动,提示发生系统错误 5 拒绝訪问 解决之道
  11. 用友U8修改货位现存量
  12. 语音识别程序c语言,语音识别
  13. 胚胎干细胞研究成果集锦,目录大合集
  14. Android 之 自动拨号
  15. 用数据告诉你,哪位导演是漫威影片中的票房收割机?
  16. 父子游标不可共享的情况分析
  17. 第一章:Linux下shell常用命令
  18. 搬砖试金石!github星标7W算法刷题宝典,还愁拿不下大厂offer?
  19. 动态毛玻璃特效html,实现div毛玻璃背景
  20. CentOS安装QEMU(试验成功且简单的方法)

热门文章

  1. 云原生五大趋势预测,K8s安卓化位列其一
  2. 自研云原生数据仓库AnalyticDB再破权威评测TPC-DS世界纪录
  3. 阿里CTO:阿里所有技术和产品输出都将必须通过阿里云进行
  4. Sentinel如何通过限流实现服务的高可用性
  5. 因为一个循环,CPU搞了个新技术
  6. 360数科 CTO 王继平:金融 IT 变革浪潮下,360数科的技术破局
  7. 备战春招:阿里一面,给了几条SQL,问需要执行几次树搜索操作?
  8. “编程能力差,90%输在了数学上!”CTO:其实你们都是瞎努力!
  9. 这份操作系统词典请查收!
  10. Redis 6.0 新特性:多线程连环 13 问!