题1 拼写单词

描述

给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。
假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。
注意:每次拼写时,chars 中的每个字母都只能用一次。
返回词汇表 words 中你掌握的所有单词的 长度之和。
示例 1:
输入:words = [“cat”,“bt”,“hat”,“tree”], chars = “atach”
输出:6
解释:
可以形成字符串 “cat” 和 “hat”,所以答案是 3 + 3 = 6。
示例 2:
输入:words = [“hello”,“world”,“leetcode”], chars = “welldonehoneyr”
输出:10
解释:
可以形成字符串 “hello” 和 “world”,所以答案是 5 + 5 = 10。
提示:
1 <= words.length <= 1000
1 <= words[i].length, chars.length <= 100
所有字符串中都仅包含小写英文字母

实现

class Solution {public int countCharacters(String[] words, String chars) {int len = 0; //记录字符个数int[] cs = new int[26];//用int数组记录字符数 记录charsfor(char c : chars.toCharArray()){cs[c-'a']++; //以字母顺序作为索引}for(String word: words){boolean flag = true;if(chars.length() < word.length()){flag = false;}else{int[] temp = new int[26];for(char c: word.toCharArray()){//遍历单词//依次存储统计词汇表中每个单词的字符temp[c-'a']++;if(temp[c-'a'] > cs[c-'a']){//如果单词需要的字母数大于chars提供的字母数flag = false;//匹配失败break;}}}if(flag){//匹配成功len += word.length();//结果加上当前单词的字符数}}return len;}
}

笔记

  1. 妙在借用字母的排列顺序,可以用int数组中的位置信息表示字母,而不需要用map再来存键值
  2. String 转 Char[]:chars.toCharArray()
  3. for循环的写法:遍历数组 for(元素类型 元素标志名: 数组名) for(String word: words)
  4. 由于字母只能使用一次,该问题可以转化为字母数量的比较,数量足够即可组成单词,否则不可以。

【LeetCode】3月17日打卡-Day2相关推荐

  1. python祝福祖国代码_国际文交所:9月17日-10月15日《祝福祖国信卡》《澳门爱与祝愿套票》《北京精神封》3个提货转仓公告...

    尊敬的交易商: 根据2020(交)第455號公告,参与合作平臺<祝福祖国信卡>.<澳门爱与祝愿套票>.<北京精神封>的有效报名人数均已超过300人且报名市值大於50 ...

  2. leetcode.cn 2022年11月4日 打卡题 754. 到达终点数字【一元二次方程解法,时间复杂度O(1)】

    leetcode 2022年11月4日 打卡题 754. 到达终点数字 写在前面   首先感谢 @子不语 大佬发布的一元二次方程代码实现的启发.题解链接:子不语-754. 到达终点数字   本文侧重梳 ...

  3. 微软欢迎所有热爱开源软件的朋友们来投稿![征稿开放时间:2015年8月17日]

    Azure是微软的云平台,不仅支持Windows服务器,也深爱着开源世界.通过与开源社区之间的合作, Azure支持了大量的开源软件和框架,涵盖了包括Linux 服务器,Docker, chef, M ...

  4. 铁甲雄兵显示服务器维护,《铁甲雄兵》5月17日09:00停机维护公告

    原标题:<铁甲雄兵>5月17日09:00停机维护公告 为保证游戏运行的稳定性,提升整体服务质量和体验,<铁甲雄兵>将于5月17日09:00~11:00进行停机维护更新,届时将关 ...

  5. 王者苹果服务器维护几点能玩,《王者荣耀》ios版更新维护到几点 10月17日ios版更新时间介绍...

    导 读 王者荣耀10月17日大版本更新迎接四周年新版本,官方给出的维护时间是持续到早上9:30,现在安卓版已经可以正常进入了,但是ios版还提示服务器正在维护中,那么ios版几点可以完成维护呢? 王者 ...

  6. 9月17日服务器维护,《海岛纪元》9月17日维护公告 「失落之城」正式开服

    亲爱的海民们: 我们将于2020年9月17日07:00进行停服维护,预计维护时间2小时. 维护期间将暂时无法登录服务器进行游戏.给您带来的不便我们深感歉意,感谢您的理解与支持. 本次维护.更新内容如下 ...

  7. 崩坏3新版本服务器维护多久,崩坏3V3.5版本10月17日版本更新维护通知

    崩坏3V3.5版本「暮光裁决」已于10月17日更新上线,以下为详细更新内容. 亲爱的舰长: 为了给舰长更好的游戏体验,休伯利安号将在10月17日进行版本更新维护,维护完成后战舰将更新为3.5版本「彼岸 ...

  8. 神雕侠侣手游服务器维修到多久,神雕侠侣2手游9月17日停服维护公告_神雕侠侣2手游9月17日更新了什么_玩游戏网...

    在神雕侠侣2手游中9月17日新增功能与优化系统的调整内容也是不少玩家所关心的,想了解的话,下面就让我们一起来看一下吧! 亲爱的少侠: 为了给您带来更好的游戏体验,<神雕侠侣2>手游将于09 ...

  9. 江苏 教师职称计算机考试时间2015,2015年4月江苏职称计算机考试报名时间截至4月17日...

    根据<2015年江苏四月份职称计算机考试安排及报名指南>得知,2015年4月江苏职称计算机考试报名时间截至4月17日. 报名方式: 1.网上报名及网银支付,报名以支付成功为准,不需要到现场 ...

最新文章

  1. 阿里云E-HPC联合安世亚太、联科集团共建云超算生态
  2. stm32的can总线理解及应用——程序对应stm32f103系列
  3. H.264编码profile level控制
  4. SpringMvc执行过程
  5. 简单的前端上传图片代码
  6. 在stm32上使用Arduino IDE(神舟I号为例)
  7. js通过身份证获取年龄
  8. 世界大百科全书!耶鲁大学教授再出神作!用1000幅图片,讲明白45亿年历史......
  9. 机器学习速成课程 | 练习 | Google Development——编程练习:逻辑回归
  10. JS 实现3D立体效果的首页轮播图(瞬间让你的网站高大上,逼格满满)
  11. Debian Linux下的Python学习——列表,元组和字典之列表
  12. 剑指offer 面试题32 从1到n整数中1出现的次数
  13. springMVC浏览器接受json报406错误的解决方法
  14. “等我干 IT 发财了,就和你离婚”
  15. linux安装mysql 5.7_linux安装mysql5.7.24
  16. java蓝宇快递打印系统_蓝宇快递打印系统
  17. 多校冲刺NOIP模拟6 - 游戏——矩阵乘法、后缀自动机SAM
  18. XSS challenges闯关笔记
  19. Python技术交流群(持续更新……)
  20. python stdin什么意思_python中stdin是什么

热门文章

  1. 10大黑客专用的 Linux 操作系统,你了解哪些?
  2. 地壳中元素含量排名记忆口诀_在地球46亿年的历史中,氮气始终是含量最高的气体,为什么?...
  3. 压缩过的js代码怎么还原_Fundebug 前端 JS插件更新至 1.7.0,拆分录屏代码,还原部分 Script error....
  4. JVM类加载机制_字节码执行引擎_Java内存模型
  5. 一、MySQL查询学习笔记(基础查询、条件查询、排序查询、常见函数、分组查询 详解)
  6. LeetCode 1733. 需要教语言的最少人数(哈希+枚举)
  7. LeetCode 1055. 形成字符串的最短路径(贪心)
  8. LeetCode 916. 单词子集(计数)
  9. LeetCode 897. 递增顺序查找树(中序遍历)
  10. LeetCode 1002. 查找常用字符(哈希)