【LeetCode】3月28日打卡-Day13
题1 单词的压缩编码
描述
给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。
例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。
对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。
那么成功对给定单词列表进行编码的最小字符串长度是多少呢?
示例:输入: words = [“time”, “me”, “bell”]
输出: 10
说明: S = “time#bell#” , indexes = [0, 2, 5] 。
提示:
1 <= words.length <= 2000
1 <= words[i].length <= 7
每个单词都是小写字母 。
题解
思路:如果单词集合中存在一个单词是另一个单词的后缀则这个单词被压缩,不计入最后的长度计算,相当于我们需要做的是:1.创建集合给原单词集合去重,2.删除原单词集合中的后缀单词,3.统计单词长度和,每个单词后面还有#,需要加一。
定义集合
Set<String> myset = new HashSet(Arrays.asList(words))
class Solution {public int minimumLengthEncoding(String[] words) {Set <String> mySet = new HashSet(Arrays.asList(words));for(String word: words){for(int k = 1; k < word.length(); k++){mySet.remove(word.substring(k));}}int ans = 0;for(String word: mySet){ans += word.length() + 1;}return ans;}
}
题2 最后一个单词的长度
描述
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
示例:
输入: “Hello World”
输出: 5
题解1
思路:思路简单,通过修用例bug实现,首先把字符串最后一个单词后的所有空格去掉,然后根据空格来截取最后一个单词的长度。
速度很慢内存占用高
执行用时 :2 ms, 在所有 Java 提交中击败了17.69%的用户
内存消耗 :37.9 MB, 在所有 Java 提交中击败了5.06%的用户
class Solution {public int lengthOfLastWord(String s) {int count = 0;int len = s.length();if(len == 0){return 0;}int space = 0;for(int i = len - 1; i >= 0; i--){if(s.charAt(i) == ' '){++space;}else{break;}}System.out.println(space);if(space > 0){len = len - space;}System.out.println(len);for(int i = len - 1; i >= 0; i--){if(s.charAt(i) != ' '){count++;}else{break;}}return count;}
}
题解2
思路一致:速度提升
执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :37.9 MB, 在所有 Java 提交中击败了5.06%的用户
class Solution {public int lengthOfLastWord(String s) {int end = s.length() - 1;while(end >= 0 && s.charAt(end) == ' ') end--;if(end < 0) return 0;int start = end;while(start >= 0 && s.charAt(start) != ' ') start--;return end - start;}
}
题3 二进制求和
描述
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “1”
输出: “100”
示例 2:
输入: a = “1010”, b = “1011”
输出: “10101”
题解 逐位求和
思路:大值用来控制外层循环,小值用来控制内层循环,始终让大值位于第一个参数,如果不符合,用return 交换一次参数位置。
carry用来保存进位值,如果carry=2 则要进位 当前位置为0 否则为1,进位之后carry/2=1用于下一步进位值计算。
时耗和内存都不佳,勉强算做出来
class Solution {public String addBinary(String a, String b) {int alen = a.length();int blen = b.length();if(blen > alen){return addBinary(b, a);}int L = Math.max(alen,blen);StringBuilder sb = new StringBuilder();int carry = 0; int j = blen-1;for(int i = L - 1; i >= 0; --i){if(a.charAt(i) == '1') ++carry;if(j >= 0 && b.charAt(j--) == '1') ++carry;if(carry % 2 == 0) sb.append('0');else sb.append('1');carry /= 2;}if(carry == 1) sb.append('1');sb.reverse();return sb.toString();}
}
【LeetCode】3月28日打卡-Day13相关推荐
- leetcode.cn 2022年11月4日 打卡题 754. 到达终点数字【一元二次方程解法,时间复杂度O(1)】
leetcode 2022年11月4日 打卡题 754. 到达终点数字 写在前面 首先感谢 @子不语 大佬发布的一元二次方程代码实现的启发.题解链接:子不语-754. 到达终点数字 本文侧重梳 ...
- 光耀卡服务器维修,3月28日服务器更新维护公告
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 亲爱的战友: 我们将于03月28日08:00-13:00对所有服务器进行更新维护.在此期间无法登录游戏,给大家带来的不便我们深表歉意. - 商城兑换 1) ...
- 崩坏3服务器维护多久,崩坏35月28日停服维护多久?4.0版本更新内容汇总[图]
崩坏3早已放出消息的4.0版本终于要来了,官方已经发布了更新的公告,将会在5月28日的时候停服,到时候玩家就不能登游戏了,那么本次更新的具体时间是什么时候?还有要持续多久?又有什么新的内容上线?在下面 ...
- 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日) 本周Silverlight学习资源更新 Silverlight HttpUtil 封 ...
- 互联网晚报 | 12月22日 星期三 | 乐视宣布涨薪;小米12系列官宣12月28日发布;好未来推出全新品牌美校...
今日看点 ✦ 中国移动:A股IPO发行价57.58元/股,预计募资额560亿元 ✦ 小米12系列手机官宣12月28日正式发布,首发三款机型 ✦ 乐视宣布涨薪,全员信称今年实现经营利润和现金流双平 ...
- csgo跑图文件_一键跑图!极为方便的CSGO跑图工具(附2020年5月28日更新)
原标题:一键跑图!极为方便的CSGO跑图工具(附2020年5月28日更新) 太长不看版 2020年5月28日更新日志极为方便的CSGO跑图工具,分享给大家 2020年5月28日CSGO更新日志 翻译: ...
- 大天使之剑h5服务器临时维护,《大天使之剑H5》2月28日维护更新公告
亲爱的玩家: 您好,为保证服务器稳定运营,优化游戏体验,我们将在2月28日进行停服维护更新,具体维护时间将视情况提前或延后,更新安排如下: [维护时间]2月28日14:30--18:30 [更新内容] ...
- 关于2021年11月28日PMI认证考试的报名通知
尊敬的各位考生: 经PMI和中国国际人才交流基金会研究决定,中国大陆地区2021年全国第二期PMI认证考试于11月28日举办,相关事项通知如下. 一.时间安排和举办地区 (一)考试时间:2021年11 ...
- 数据技术嘉年华专列10月28日抵达广州,请做好接站准备
第七届数据技术嘉年华 - 广州站 会议通知 主题:云 • 数据 • 智能 - 数聚价值 智胜未来 时间:2017年10月28日(周六) 地点:广州市广武酒店(天河区天河路 603 号) 人员:Dear ...
最新文章
- java多线程之wait和notify
- 如何反序列化XML文档
- [导入][翻译]匈牙利命名法的缺点
- ECshop商城程序常见的96个小问题汇总
- 哈希值 哈希表_哈希杰森
- Android 手把手带你玩转自己定义相机
- python 多窗口编辑
- iOS 合并静态库出现 can't move temporary file错误
- 趣味菜单C语言,趣味C语言
- android 按钮点击返回顶部,微信浏览器点击系统返回,安卓返回会重载页面回到页面顶部,iOS则返回则会保留之前浏览位置的解决方法...
- 文件上传 文件大小和类型
- 百度实习1,2,3面-教育知心搜索前端项目组
- matlab uicontrol 居中,matlab的uicontrol
- Go Grpc Jwt身份认证和Gateway集成以及HTTPS双向认证
- HHL论文第三弹(参数讨论)
- 时差怎么理解_懂的人自然懂,不懂的人再多解释也有时差
- 最快零基础上手——latex文档标题、一级标题、二级标题、内容搭建
- 写公众号一个月关注量破900,聊聊我的感受
- 再一次和新同事们谈谈看法
- mysql火焰图_技术|如何读懂火焰图?
热门文章
- 分享一个非常 nice 的工具
- 陈潇冰php,webpack4.x入门到进阶
- 鼠标中间无法打开新标签_还记得鼠标有几个键?Win10环境鼠标中键的妙用
- python安装虚拟环境出现错误_virtualenv 安装虚拟环境问题 请大神指点一二
- SCI论文写作训练营笔记汇总02_英文科技论文阅读与解析
- PackagesNotFoundError: The following packages are not available from current channels:
- jieba分词提取小说人名
- C++ 内存对齐 及 引用是否真的节省内存的一点思考
- 自动化运维Shell课堂笔记
- python 经典100例(1-20)