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

宜阳县网站建设珠海百度关键词优化

宜阳县网站建设,珠海百度关键词优化,外贸网站建设工作室,广东旅游网站建设Leetcode Leetcode -405.数字转换为十六进制数Leetcode - 409.最长回文串 Leetcode -405.数字转换为十六进制数 题目:给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意 : 十六进制中所有…

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;}
http://www.wangmingla.cn/news/40095.html

相关文章:

  • 重庆网站建设团队站长工具国产
  • 苹果电脑可以做网站吗百度小说风云榜
  • 传奇高端网站设计制作北京网站快速优化排名
  • 广州市网站建设分站价格浏览器2345网址导航下载安装
  • 南昌网站建设公司案例重大军事新闻最新消息
  • 河北省建设厅网站官网业务系统什么是百度推广
  • 旅行社网站方案百度指数查询移民
  • 江门网站快速排名优化网站视频播放代码
  • 网站内容建设的原则推广平台 赚佣金
  • 网站建设phpweb教程企业网站的推广阶段
  • 网站的建设包括什么是网络营销策略
  • 自己在本地建的网站 别人怎么访问教程青岛关键词搜索排名
  • 高校网站建设的文章重庆seo优化公司
  • 企业网站建设哪里做网站好百度网盘官方网站
  • 门户网站建设工作方案佛山做网站建设
  • 购物商城名字大全seo是广告投放吗
  • 做阿里国际网站会有成效吗百度网址大全电脑版
  • 苏网站建设腾讯广告推广怎么做
  • 如何开办自己的公司企业seo关键词优化
  • 网页建设技术和网站策划书网站排名优化培训
  • python编程网站推荐十大网站管理系统
  • 好网站建设公司选择哪家好竞价广告是什么意思
  • 对电子商务网站建设与管理的理解深圳做网站公司
  • 成都教育行业网站建设推广运营平台
  • 中文域名网站有哪些营销战略有哪些内容
  • 洛阳建网站公司广州推广seo
  • 廊坊专业做网站重庆好的seo平台
  • 开发一个彩票网站多少钱seo难不难学
  • 郑州网站建设靠谱公司最新新闻热点事件2022
  • 网站模版购买惠州搜索引擎seo