249 Group Shifted Strings
来源:互联网 发布:slmmsk软件下载 编辑:程序博客网 时间:2024/04/28 06:39
不是很难的一道题,典型的用HashMap将String分类,关键是找到分类的标准,也就是找到map中key是什么。。。这道题就是与我google加面的题目很像。所以我就分开写了一个函数来使用,如果在主函数里面写,会写的非常不好看,readability很差
仔细检查后,一遍bug-free,而且效率也挺高85%,
public class Solution { public List<List<String>> groupStrings(String[] strings) { List<List<String>> list = new ArrayList<List<String>>(); Map<String, List<String>> map = new HashMap<String, List<String>>(); for(String str: strings){ String keyWord=shuffle(str); if(!map.containsKey(keyWord)) map.put(keyWord, new ArrayList<String>()); map.get(keyWord).add(str); } for(String key: map.keySet()){ list.add(map.get(key)); } return list; } private String shuffle(String word){ StringBuilder result= new StringBuilder(); char bar= word.charAt(0); for(char ch: word.toCharArray()){ int offset=(ch-bar)<0?(ch-bar+26):(ch-bar); result.append((char)(offset+'a')); } return result.toString(); }}// 理解了题目意思,很自然想到用HashMap来进行各个str的划分,然后关键问题就是找到一个划分的标准了。// 想到的部分:1,首先必须等长str,第一个条件;2,然后各个自己字母之间的差距是一样的;3,如果遇到了katy这样的情况,a比k小,那么差值就成了负数,那么就需要+26;我想可以通过尝试一个数组来存储这样的信息,但是把数组作为key,显然不合适?若是把sigma加和作为key也同样不合适,abc和acb就是同一个key了,不满足条件。。。// 参考了别人的答案,瞬间明白,用一个新的String来代表不就完了么,本质上就是你个那个整型数组的思想啊。// 这道题的形式就是我google加面的第二道题,只是那里给出了一个明确的定义,给出了shorten这个方法,直接就可以得到一个key了,这里的话需要自己思考出一个key,这往往也是解题的关键。
0 0
- 249 Group Shifted Strings
- [leetcode 249] Group Shifted Strings
- Leetcode 249 Group Shifted Strings
- Leetcode NO.249 Group Shifted Strings
- LeetCode-Group Shifted Strings
- [LeetCode249]Group Shifted Strings
- Group Shifted Strings
- Group Shifted Strings
- Group Shifted Strings
- 249. Group Shifted Strings
- Group Shifted Strings
- LeetCode 249. Group Shifted Strings
- LeetCode 249. Group Shifted Strings
- LeetCode 249. Group Shifted Strings
- LeetCode 题解(245) : Group Shifted Strings
- [leetcode] 249. Group Shifted Strings 解题报告
- [Leetcode] 249. Group Shifted Strings 解题报告
- Strings
- linux jdk环境变量配置
- Linux 上的数据可视化工具
- mongodb 启动报错 ERROR: child process failed, exited with error number 1
- 基于Typescript搭建前端开发环境
- Android 利用MediaPlayer实现音乐播放器(应用内,内存卡,网络)
- 249 Group Shifted Strings
- 读取短信
- Linux系统操作指令汇总
- Uva120 Stacks of Flapjacks【构造法】【例题8-1】
- 通过RBM实现协同过滤
- MAC系统操作指令汇总
- 解决html用js或者jq跨域请求报错的问题。我的ssm服务器!
- MVC设计模式
- poj 2152 Fire(树形dp)