当前位置: 首页 > news >正文

【Leetcode -405.数字转换为十六进制数 - 409.最长回文串】

Leetcode

  • Leetcode -405.数字转换为十六进制数
  • Leetcode - 409.最长回文串

Leetcode -405.数字转换为十六进制数

题目:给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。

注意 :
十六进制中所有字母(a - f)都必须是小写。
十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。
不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。

示例 1:
输入 :
26
输出 :
“1a”

示例 2:
输入 :
-1
输出 :
“ffffffff”

我们的思路是将这个数num的二进制转换成十六进制,num的二进制中,每四位就会转换为十六进制的一位数,所以每次我们用num按位与上0xf,即是15,因为15的二进制形式为 1111 ,按位与上0xf就能得到num二进制的后四位,然后将按位与得到的数进行判断处理,放入数组中;最后将num向右移四位,进行下一次循环;

以26为例:

在这里插入图片描述

向右移四位后按位与如下图,所以最终结果为 " 1a ";
在这里插入图片描述

		char* toHex(int num){//开辟9个char空间,因为整型的十六进制最长的长度为8,加上'\0'就9个char* nums = (char*)malloc(sizeof(char) * 9);//对于负数,将它强转成无符号数处理unsigned newnum = (unsigned int)num;int i = 0;//如果数组中只有一个0,就在0后面加上'\0',返回数组if (num == 0){nums[0] = '0';nums[1] = '\0';return nums;}//当这个数转成无符号数之后不为0,进入循环while (newnum > 0){//0xf即为15,15的二进制为 1111 //即将这个数按位与上 1111 ,得到这个数的二进制的后四位,存放到flag中//因为二进制表示的数,每四位二进制就表示一为十六进制的数int flag = newnum & 0xf;//如果小于10,就将它转成字符放到数组中,然后i++if (flag < 10){nums[i++] = flag + '0';}//如果大于等于10,先减去10,再加上字符a,使它转换成十六进制的字符else{nums[i++] = flag - 10 + 'a';}//然后将这个数向右移四位,判断下一个十六进制的位数newnum >>= 4;}//循环结束后在i处加上'\0'nums[i] = '\0';//最后将数组逆置,因为放进去的时候是这个数二进制的尾部开始放,所以读的时候要倒过来读int left = 0, right = i - 1;while (left < right){char tmp = nums[left];nums[left++] = nums[right];nums[right--] = tmp;}return nums;}

Leetcode - 409.最长回文串

题目:给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。

在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。

示例 1:
输入:s = “abccccdd”
输出 : 7
解释 :
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

示例 2 :
输入 : s = “a”
输出 : 1

示例 3:
输入 : s = “aaaaaccc”
输出 : 7

我们的思路是,用一个hash数组记录字符串中字符出现的次数,count记录回文串的长度,只要某个字符出现了两次,就证明可以构成回文串,就将2加到count中,然后再将这个字符的位置置0;对于奇数个的字符,对于上述的处理之后,现在hash数组中的位置对应的数值只能是0或者1,0的话不管,1的话只保留一个,因为在回文串中是对称的,只能有一个奇数的字符;具体的代码和注释如下:

		int longestPalindrome(char* s){//创建一个hash数组,长度为58,因为字符串中含有大小写字母的字符,从'A'到'z'一共就58个字符int hash[58] = { 0 };//count统计最长的回文串int count = 0;//遍历字符串,以字符作为hash数组的下标记录这个字符出现的次数,每次出现就++//当这个位置出现了两次,证明可以构成回文串,就使count加2,并将这个位置置0for (int i = 0; i < strlen(s); i++){hash[s[i] - 'A']++;if (hash[s[i] - 'A'] > 1){count += 2;hash[s[i] - 'A'] = 0;}}//遍历以'A'到'z'作为hash数组的下标,现在它们的位置的数值只能是0或者1//奇数个的字符在回文串中只能出现一个,所以其他奇数个的字符都不算入count中,用count += hash[i] - 1处理,本来hash[i]是1,减去1后就是0int flag = 0;for (int i = 0; i < 58; i++){if (hash[i] % 2){flag = 1;count += hash[i] - 1;}}//最后留下来的奇数个的字符算入count中if (flag)count++;//最后返回回文串长度return count;}

相关文章:

【Leetcode -405.数字转换为十六进制数 - 409.最长回文串】

Leetcode Leetcode -405.数字转换为十六进制数Leetcode - 409.最长回文串 Leetcode -405.数字转换为十六进制数 题目&#xff1a;给定一个整数&#xff0c;编写一个算法将这个数转换为十六进制数。对于负整数&#xff0c;我们通常使用 补码运算 方法。 注意 : 十六进制中所有…...

剑指 Offer:003 前 n 个数字二进制中 1 的个数

题目&#xff1a; 给定一个非负整数 n&#xff0c;请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数&#xff0c;并输出一个数组 示例&#xff1a; 1、 输入: n 2 输出: [0,1,1] 解释: 0 --> 0 1 --> 1 2 --> 10 2、 输入: n 5 输出: [0,1,1,2,1,2] 解释: 0 …...

DDD系列:二、应用架构设计演变

作用: ​ 通过规定一个固定的架构设计&#xff0c;可以让团队内有一个统一的开发规范&#xff0c;降低沟通成本&#xff0c;提升效率和代码质量。 目标&#xff1a; ​ 在做架构设计时&#xff0c;一个好的架构应该需要实现以下几个目标&#xff1a; 独立于UI&#xff1a;前…...

Spring-IOC

IOC概念和原理 什么是IOC 控制反转&#xff0c;为了将系统的耦合度降低&#xff0c;把对象的创建和对象直接的调用过程权限交给Spring进行管理。 IOC底层原理 XML解析 ​ 通过Java代码解析XML配置文件或者注解得到对应的类的全路径&#xff0c;获取对应的Class类 Class clazz …...

基于Java语言开发B/S架构实现的云HIS

一、云HIS系统框架简介 1、技术框架 &#xff08;1&#xff09;总体框架&#xff1a; SaaS应用&#xff0c;全浏览器访问 前后端分离&#xff0c;多服务协同 服务可拆分&#xff0c;功能易扩展 &#xff08;2&#xff09;技术细节&#xff1a; 前端&#xff1a;AngularNg…...

清洁赛道新势力,米博凭“减法”突围?

在五四青年节这个特殊的日子&#xff0c;方太旗下的高端智能清洁品牌“米博”发布了新一代无滚布洗地机7系列。 5月4日晚&#xff0c;米博以“减法生活&#xff0c;净请7代”为主题&#xff0c;举办了新品发布会。在发布会上&#xff0c;从小红书翻红的董洁作为方太集团米博产…...

代码随想录训练营Day6| 242、349、202、1

242. 有效的字母异位词 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 class Solution {public boolean isAnagram(String s, String t)…...

IP-GUARD如何通过网络控制策略禁止应用程序联网?

如何通过网络控制策略禁止应用程序联网? 可以在控制台-高级-网络控制中,添加以下策略: 动作:“禁止” 应用程序:填写要禁止的程序(以QQ示例) 如何禁止没有安装客户端的电脑访问客户端电脑? 可以给所有客户端设置只允许客户端电脑访问的网络控制策略; 在控制台左边的…...

Java RSA密钥转换,从RSAPrivateKey得到RSAPublicKey

概述&#xff1a; 在Java编程中&#xff0c;我们经常用到如下一段代码来生成RSA公私钥&#xff0c;分别拿到公私钥然后加解密计算&#xff1a; KeyPairGenerator keyPairGen; keyPairGen KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(2048, new S…...

Android 12.0 Launcher3仿ios长按app图标实现抖动动画开始拖拽停止动画

1.概述 在12.0的系统rom定制化开发中,在对系统原生Launcher3的定制需求中,也有好多功能定制的,在ios等电子产品中 的一些好用的功能,也是可以被拿来借用的,所以在最近的产品开发需求中,需求要求模仿ios的 功能实现长按app图标实现抖动动画,接下来看如何分析该功能的实现…...

【五一创作】50道Java面试题

Java中的四种访问权限控制符分别是什么&#xff1f; 答&#xff1a;Java中的四种访问权限控制符分别是public、protected、default和private。 Java中的反射是什么&#xff1f;有什么作用&#xff1f; 答&#xff1a;Java中的反射是指在程序运行时动态获取类的信息和调用对象…...

4。计算机组成原理(3)指令系统

嵌入式软件开发&#xff0c;非科班专业必须掌握的基本计算机知识 核心知识点&#xff1a;数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统 指令系统&#xff08;Instruction Set&#xff09;是计算机体系结构的关键组成部分之一&#xff0c;它定义了处…...

【Elasticsearch】NLP简单应用

文章目录 NLP简介ES中的自然语言处理(NLP)NLP演示将opennlp插件放在ESplugins路径中下载NER模型配置opennlp重启ES、验证 NLP简介 NLP代表自然语言处理&#xff0c;是计算机科学和人工智能领域的一个分支。它涉及使用计算机来处理、分析和生成自然语言&#xff0c;例如英语、中…...

3. 云计算的落地实践(下)

本章讲解知识点 云计算如何落地实践ISO镜像文件创建虚拟机入门创建数据节点配置VMWare创建虚拟机三种网络模式1. 云计算的落地实践 上一章我们讲了云计算的业界实践,即:搭建IaaS后,用于创建虚拟机,在虚拟机上部署PaaS,用于管理同时部署在虚拟机上的容器,这就是业界普遍的…...

javaEE+mysql学生竞赛管理系统

本系统是基于JAVA平台开发的一套学生竞赛信息管理的系统。系统采用JSP为编程语言。数据库采用Mysql建立数据之间的转换。论文主要介绍了本课题的开发背景&#xff0c;所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。 本课题的目的是使…...

车辆出险记录查询API接口

车辆出险记录接口可以帮助车主、保险公司、交通管理部门等各方快速查询车辆的出险记录&#xff0c;了解车辆风险情况、核算保险费用等。这篇文章将探讨车辆出险记录接口的作用、应用场景、使用方式以及一些注意事项。 作用&#xff1a; 车辆出险记录接口主要解决了快速获取车…...

MySQL的概念,编译及安装

一.数据库的基本概念 1、数据&#xff08;Data&#xff09; • 描述事物的符号记录 • 包括数字&#xff0c;文字&#xff0c;图形&#xff0c;图像&#xff0c;声音&#xff0c;档案记录等 • 以“记录”形式按统一的格式进行存储 2、表 • 将不同的记录组织在一起 • …...

系统性能压力测试

系统性能压力测试 一、压力测试 压力测试是给软件不断加压&#xff0c;强制其在极限的情况下运行&#xff0c;观察它可以运行到何种程度&#xff0c;从而发现性能缺陷&#xff0c;是通过搭建与实际环境相似的测试环境&#xff0c;通过测试程序在同一时间内或某一段时间内&…...

从零开始学习Linux运维,成为IT领域翘楚(三)

文章目录 &#x1f525;Linux超级用户与伪用户&#x1f525;Linux文件基本属性&#x1f525;Linux权限字与权限操作 &#x1f525;Linux超级用户与伪用户 Linux下用户分为三类&#xff1a;超级用户、普通用户、伪用户 ⭐ 超级用户&#xff1a;用户名为root&#xff0c;具有一切…...

轻松搭建自己的ChatGPT聊天机器人,让AI陪你聊天!

随着人工智能技术的发展&#xff0c;聊天机器人已经成为了我们生活中的一部分。无论是在客服机器人上还是智能助手上&#xff0c;聊天机器人都能够给我们带来真正的便利和快乐。现在&#xff0c;你也可以轻松搭建自己的ChatGPT聊天机器人&#xff0c;和它天马行空地聊天&#x…...

OpenClaw云端体验方案:星图平台GLM-4.7-Flash镜像快速部署

OpenClaw云端体验方案&#xff1a;星图平台GLM-4.7-Flash镜像快速部署 1. 为什么选择云端沙盒环境 作为一个长期折腾本地环境的开发者&#xff0c;我深知在个人电脑上部署AI工具链的痛苦。从CUDA版本冲突到Python依赖地狱&#xff0c;每次尝试新工具都要花半天时间解决环境问…...

OpenClaw+GLM-4.7-Flash实战:个人自动化办公助手搭建指南

OpenClawGLM-4.7-Flash实战&#xff1a;个人自动化办公助手搭建指南 1. 为什么选择本地AI办公助手 去年夏天&#xff0c;我发现自己每天要花3小时处理重复性办公任务&#xff1a;整理邮件、归档文档、撰写会议纪要。当我尝试用传统RPA工具时&#xff0c;发现它们要么太死板&a…...

企业网络改造不求人:手把手教你深信服防火墙旁挂部署(含NQA配置避坑指南)

企业级防火墙旁挂部署实战&#xff1a;深信服设备零基础配置指南 当企业网络规模逐步扩大&#xff0c;业务系统日益复杂&#xff0c;网络安全防护往往成为IT运维团队最头疼的问题之一。传统防火墙部署通常需要对现有网络架构进行大规模调整&#xff0c;不仅实施周期长&#xff…...

ChatTTS 语音合成中如何高效添加语气词:原理与实战指南

最近在做一个语音播报项目&#xff0c;用到了ChatTTS&#xff0c;发现生成的语音虽然清晰&#xff0c;但总感觉少了点“人味儿”。特别是那些“嗯”、“啊”、“哦”之类的语气词&#xff0c;插进去之后特别生硬&#xff0c;像机器人在念稿&#xff0c;用户体验大打折扣。这让我…...

从零构建 eNSP 小型校园网络毕业设计:架构解析与避坑指南

最近在帮学弟学妹们看网络相关的毕业设计&#xff0c;发现很多同学在用华为 eNSP 搭建小型校园网络时&#xff0c;思路容易混乱。要么是拓扑图画得一团麻&#xff0c;分不清层次&#xff1b;要么是配置完 VLAN 后&#xff0c;不同网段的电脑死活 ping 不通&#xff1b;还有的干…...

一键部署生产力:星图平台OpenClaw+Qwen3.5-9B体验

一键部署生产力&#xff1a;星图平台OpenClawQwen3.5-9B体验 1. 为什么选择云端沙盒方案 上周我在本地尝试部署OpenClaw时&#xff0c;经历了Python版本冲突、CUDA驱动不兼容等一系列典型环境问题。当看到星图平台提供预装OpenClawQwen3.5-9B的完整镜像时&#xff0c;第一反应…...

5步掌握Blender置换贴图:从基础到高级的完整指南

5步掌握Blender置换贴图&#xff1a;从基础到高级的完整指南 【免费下载链接】awesome-blender &#x1fa90; A curated list of awesome Blender addons, tools, tutorials; and 3D resources for everyone. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-ble…...

一键体验:星图平台OpenClaw+百川2-13B-4bits量化模型沙盒环境

一键体验&#xff1a;星图平台OpenClaw百川2-13B-4bits量化模型沙盒环境 1. 为什么选择沙盒环境 作为长期关注AI自动化工具的技术爱好者&#xff0c;我一直在寻找低门槛体验OpenClaw的方案。本地部署虽然可控性强&#xff0c;但配置Python环境、解决CUDA依赖、调试模型连接等…...

OpenClaw:打破AI空谈,打造本地可控的智能执行助手

在AI工具层出不穷的当下&#xff0c;多数大模型仍停留在“对话生成”层面&#xff0c;只能输出文字却无法落地执行任务&#xff0c;隐私泄露风险也让不少用户望而却步。2026年走红的开源项目OpenClaw&#xff08;俗称“龙虾”&#xff09;&#xff0c;彻底颠覆了这一局面&#…...

OpenClaw对话增强:Qwen3-32B长上下文记忆功能配置指南

OpenClaw对话增强&#xff1a;Qwen3-32B长上下文记忆功能配置指南 1. 为什么需要长上下文记忆 上周我在调试一个自动化周报生成任务时&#xff0c;遇到了一个典型问题&#xff1a;OpenClaw在连续对话中总是"忘记"前几轮的关键信息。比如当我先要求"提取本周所…...