[Leetcode] 800. Similar RGB Color 解题报告

800 相似 RGB 颜色 题目描述: RGB 颜色用十六进制来表示的话,每个大写字母都代表了某个从 0 到 f 的 16 进制数。 RGB 颜色 “#AABBCC” 可以简写成 “#ABC” 。例如,"#15c" 其实是 “#1155cc” 的简写。 现在,假如我们分别定义两个颜色 “#ABCDEF” 和 “#UVWXYZ”,则他们的相似度可以通过这个表达式 -(AB - UV)^2 - (CD - WX)^2 - (EF - YZ)^2 来计算。 那么给定颜色 “#ABCDEF”,请你返回一个与 #ABCDEF 最相似的 7 个字 阅读详情

题目:

In the following, every capital letter represents some hexadecimal digit from 0 to f.

The red-green-blue color "#AABBCC" can be written as "#ABC" in shorthand.  For example, "#15c" is shorthand for the color "#1155cc".

Now, say the similarity between two colors "#ABCDEF" and "#UVWXYZ" is -(AB - UV)^2 - (CD - WX)^2 - (EF - YZ)^2.

Given the color "#ABCDEF", return a 7 character color that is most similar to #ABCDEF, and has a shorthand (that is, it can be represented as some "#XYZ"

Example 1:
Input: color = "#09f166"
Output: "#11ee66"
Explanation:  
The similarity is -(0x09 - 0x11)^2 -(0xf1 - 0xee)^2 - (0x66 - 0x66)^2 = -64 -9 -0 = -73.
This is the highest among any shorthand color.

Note:

  • color is a string of length 7.
  • color is a valid RGB color: for i > 0, color[i] is a hexadecimal digit from 0 to f
  • Any answer which has the same (highest) similarity as the best answer will be accepted.
  • All inputs and outputs should use lowercase letters, and the output is 7 characters.

思路:

我们发现R,G,B三个分量之间是相互独立的,所以可以各个单独进行计算。对于每个分量,假如对应的输入为s,那么最多有三个候选的最近颜色:string(2, s[0] - 1), string(2, s[0])以及string(2, s[0] + 1)。所以我们分别进行比较,选出距离最小的即可。

值得注意的是,当s[0] == '9'或者s[0] == 'a'的时候,我们需要进行特殊处理,否则在16进制转换的时候会出错。

代码:

class Solution {
public:
    string similarRGB(string color) {
        string ret("#");
        for (int i = 0; i <= 2; ++i) {
            char c = getSimilar(color.substr(2 * i + 1, 2));
            ret += string(2, c);
        }
        return ret;
    }
private:
    char getSimilar(string s) {
        int min_diff = abs(stoi(s, NULL, 16) - stoi(string(2, s[0]), NULL, 16));
        char min_char = s[0], c;
        if (s[0] > '0') {
            c = s[0] == 'a' ? '9' : s[0] - 1;
            int diff = abs(stoi(s, NULL, 16) - stoi(string(2, c), NULL, 16));
            if (diff < min_diff) {
                min_diff = diff;
                min_char = c;
            }
        }
        if (s[0] < 'f') {
            c = s[0] == '9' ? 'a' : s[0] + 1;
            int diff = abs(stoi(s, NULL, 16) - stoi(string(2, c), NULL, 16));
            if (diff < min_diff) {
                min_diff = diff;
                min_char = c;
            }
        }
        return min_char;
    }
};
Cadence IC617仿真实践:有源电流镜的共模抑制比优化策略 本文基于Cadence IC617平台,详细介绍了有源电流镜共模抑制比(CMRR)的仿真与优化全流程。从电路搭建、DC工作点分析到AC仿真获取差模/共模增益,逐步解析CMRR计算方法。核心优化策略包括提升电流镜输出阻抗、优化差分对匹配性及调整晶体管尺寸,并探讨了与电源抑制比(PSRR)的权衡,为模拟集成电路设计提供实用指南。 阅读详情

相关推荐

别再只调API了!深度拆解Dify文件上传的两种传参方式(sys.file vs. inputs.upload_file)

本文深度解析Dify平台文件上传的两种传参方式——sys.file与inputs.upload_file,详细对比其设计原理、技术实现及适用场景。通过代码示例和性能分析,帮助开发者在本地大模型应用中做出精准技术选型,提升文件处理效率与系统稳定性。

weixin_29063979的博客 268

LeetCode 800. 相似 RGB 颜色

文章目录1. 题目2. 解题2.1 暴力枚举2.2 独立枚举 1. 题目 RGB 颜色用十六进制来表示的话,每个大写字母都代表了某个从 0 到 f 的 16 进制数。 RGB 颜色 “#AABBCC” 可以简写成 “#ABC” 。例如,"#15c" 其实是 “#1155cc” 的简写。 现在,假如我们分别定义两个颜色 "#ABCDEF" 和 "#UVWXYZ",则他们的相似度可以通过这个表达式 -(AB - UV)^2 - (CD - WX)^2 - (EF - YZ)^2 来计算。 那么给定颜色 “#AB

Michael是个半路程序员 2046

NVIDIA vGPU三种授权方式(个人玩家版)

NVIDIA vGPU三种方式搭建授权服务器(个人玩家版)

wstc2689784536的博客 8435

leetcode800. Similar RGB Color(python)

leetcode800. Similar RGB Color(python) 原题地址: 题目 In the following, every capital letter represents some hexadecimal digit from 0 to f. The red-green-blue color “#AABBCC” can be written as “#ABC...

birdreamer的博客 885

folium离线地图实战:从下载到部署的完整指南

本文提供了一份完整的folium离线地图实战指南。针对网络不稳定或内网环境下的地图应用需求,详细讲解了如何下载离线地图瓦片数据,并通过两种核心方法(直接替换URL与创建TileLayer)将其集成到folium中。文章还涵盖了部署优化、边界处理及资源本地化等关键步骤,帮助你构建完全脱离网络依赖的交互式地图应用。

weixin_29061041的博客 274

基于STM32避障/循迹/蓝牙遥控小车的硬件与软件底层设计

1、实现2m的自动直线行驶,要求左右偏移不大于10cm。2、车载显示屏显示车辆当前行驶速度或车辆运行时间,当前方20cm内出现障碍物时显示与前方障碍物的距离,车每次转弯蜂鸣器报警,同时通过左右指示灯指示转弯方向。3、依次驶过障碍物①②③④,且不触碰障碍物。4、成功进行调头转弯,行驶过程中车轮不碾压黑实线。5、在车道指定位置停车且不越界。6、通过红外、蓝牙、WiFi等任意一种方式实现对小车的控制,使其前进、后退、左转、右转。

2301_78758161的博客 1万+

【LeetCode - 800】相似 RGB 颜色

【简单】数学、字符串

学哥斌的博客 855

Mamba-YOLO实战:环境配置+模型训练+精度调优全流程指南(附Colab代码)

在目标检测领域,一场由状态空间模型引发的技术革新正在悄然改写行业格局。近期国际顶级学术期刊连续发布的YOLOv5_mamba、FER-YOLO等突破性成果,不仅刷新了检测精度记录,更开创了结构化状态空间模型(SSM)与经典检测框架的创新融合范式。当前该领域涌现的十大标杆性研究,已在以下维度取得突破性进展:√ 遮挡目标识别准确率提升38%√ 小样本场景泛化能力增强2.7倍√ 视频流检测延迟降低至17ms√ 多目标交叉干扰抑制效果达SOTA。

2501_90555291的博客 1581

[leetcode] 800. Similar RGB Color @ python

原题 In the following, every capital letter represents some hexadecimal digit from 0 to f. The red-green-blue color “#AABBCC” can be written as “#ABC” in shorthand. For example, “#15c” is shorthand for...

闲庭信步 519

Inception-Resnet-v1、Inception-Resnet-v2学习笔记(附Pytorch代码)_inception-resnet-v1 代码

Reduction-B模块:输入8*8*1792,输出8*8*1792.IR-B模块*10:输入17*17*896,输出17*17*896.IR-A模块*5:输入35*35*256,输出35*35*256.IR-A模块*5:输入35*35*384,输出35*35*256.IR-B模块*10:输入17*17*896,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.

2401_89285791的博客 470

SAP 固定资产采购简介

SAP 固定资产采购是指企业通过采购流程获取长期使用并记录为固定资产的物品。固定资产是企业为长期使用而购置的资产,如机器设备、办公设备、建筑物、车辆等,通常这些资产的使用期限较长,并且在资产负债表上记录。在SAP系统中,固定资产采购流程通常与物料管理(MM)模块和固定资产管理(FI-AA)模块相结合。这个过程涉及从需求的提出、采购订单的创建,到货物接收、发票校验和资产激活的多个步骤。

我小时候很黑的博客 1730

[LeetCode] 800. Similar RGB Color 相似的红绿蓝颜色

In the following, every capital letter represents some hexadecimal digit from0tof. The red-green-blue color"#AABBCC"can be writtenas"#ABC"inshorthand. For example,"#15c"is shorthand for t...

weixin_30633507的博客 271

基于SOLIDWORKS API的工业级插件开发指南

SOLIDWORKS API是基于COM技术的一套开发接口,支持C#、VB.NET等语言,用于自动化建模、属性管理、界面定制等功能。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 2748

【LeetCode】800. Similar RGB Color 解题报告(C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法遍历日期 题目地址:https://leetcode-cn.com/problems/similar-rgb-color/ 题目描述 In the following, every capital letter represents som...

负雪明烛 862

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【Leetcode】800. Similar RGB Color

题目地址: https://leetcode.com/problems/similar-rgb-color/ 给定一个颜色的十六进制编号,再定义两个颜色的相似度,#ABCDEF\#ABCDEF#ABCDEF和#UVWXYZ\#UVWXYZ#UVWXYZ的相似度是−(AB−UV)2−(CD−WX)2−(EF−YZ)2-(AB - UV)^2 - (CD - WX)^2 - (EF - YZ)^2−(AB−UV)2−(CD−WX)2−(EF−YZ)2,其中的AB,UVAB,UVAB,UV等等要看成某个数的十六进

数学、算法爱好者的博客 279

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

算法similarRGB问题

In the following, every capital letter represents some hexadecimal digit from 0 to f. The red-green-blue color “#AABBCC” can be written as “#ABC” in shorthand. For example, “#15c” is shorthand for th...

如切如磋,如琢如磨 477

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

leetcode 算法题800 (简单208) 相似 RGB 颜色

leetcode 算法题800 (简单208) 相似 RGB 颜色 题目介绍 RGB 颜色用十六进制来表示的话, 每个大写字母都代表了某个从 0 到 f 的 16 进制数。 RGB 颜色 "#AABBCC" 可以简写成 "#ABC" 。 例如,"#15c" 其实是 "#1155cc" 的简写。 现在,假如我们分别定义两个颜色 "#A...

FYuu95100的博客 1006

800. Similar RGB Color

In the following, every capital letter represents some hexadecimal digit from 0 to f.The red-green-blue color "#AABBCC" can be written as "#ABC" in shorthand.  For example, "#15c" is shorthand for the...

Do not mess it up 1354

lintcode1017-Similar RGB Color

题目描述:本题中对于一个给定的RGB字符串,找到一个形如“#AABBCC”的字符串使得similarity最大。通过观察可以发现,两两一组,可以分别找差值最小的,因为都是负的,所以肯定最后结果是最大的。当分离出两两一组时,当两个字母相同时,最相近的就是本身,直接放进结果中即可,如果两个字母不相同,无非就是三种情况:重复第一个字母两次, 第一个字母减一重复两次, 第一个字母加一重复两次。如果第一个字...

ddou_pan的博客 338

LC.800. Similar RGB Color

class Solution(object): def similarRGB(self, color): """ :type color: str :rtype: str """ def hex2dec(ab): def helper(char): if...

很吵请安静 386

Lintcode 1017. Similar RGB Color (Easy) (Python)

1017. Similar RGB Color Description: In the following, every capital letter represents some hexadecimal digit from 0 to f. The red-green-blue color “#AABBCC” can be written as “#ABC” in shorthand. ...

DY的博客 333

[Leet Code] 75. Sort Colors

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the integers

beyongwang的博客 484

JavaScript中多的是。你不知道的坑

1、最新的chrome浏览器:

咸鱼的星空 1万+

[leetcode]839. Similar String Groups

链接:https://leetcode.com/problems/similar-string-groups/description/   Two strings X and Y are similar if we can swap two letters (in different positions) of X, so that it equals Y. For example, "ta...

xiaocong1990的博客 1052

LeetCode(75):分类颜色 JAVA

Medium! 题目描述: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: [0,0,1,1,2,2] 进阶: 一个直观的解决方案是使用计数排...

fchange 530

leetcode动态规划小结-持续更新中

1.动态规划专区 300. Longest Increasing Subsequence Given an unsorted array of integers, find the length of longest increasing subsequence. For example, Given [10, 9, 2, 5, 3, 7, 101, 18], The longest ...

柳汀轩 1252
上一篇: [Leetcode] 799. Champagne Tower 解题报告
下一篇: [Leetcode] 801. Minimum Swaps To Make Sequences Increasing 解题报告
魔豆Magicbean
博客等级 码龄19年 146粉丝 742原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值