LintCode 171 乱序字符串
来源:互联网 发布:java 射击游戏 编辑:程序博客网 时间:2024/05/22 06:16
昨天做的一题很有意思的字符串题目。
用到了 HashMap 当中的 Entry 链表,顺便又复习了一下 HashMap,对应的方法在代码当中已经有注释。
import java.util.*;public class Anagrams { /** * 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。 * 如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中 * @param strs * @return */ public List<String> ana(String[] strs) { List<String> result = new ArrayList<>(); if (strs == null || strs.length == 0) return result; Map<String, ArrayList<String>> map = new HashMap<>(); for (int i = 0; i < strs.length; i++) { char[] arr = strs[i].toCharArray(); Arrays.sort(arr); String s = String.valueOf(arr); //不包含的时候创建一个新的list,并向其中添加当前元素 if (!map.containsKey(s)) { ArrayList<String> list = new ArrayList<>(); map.put(s, list); } map.get(s).add(strs[i]); } // map.entrySet()返回“HashMap的Entry集合”,它实际是返回一个EntrySet对象 实际上调用的是 map.entrySet0() // 这里的Map.Entry<String, ArrayList<String>> entry 创建的是一个 Map.Entry 对象 // Map.Entry<K, V> map : map.entry.Set() // 在 HashMap 当中 Entry<K, V> implements Map.Entry<K, V> for (Map.Entry<String, ArrayList<String>> entry : map.entrySet()) { if (entry.getValue().size() >= 2) result.addAll(entry.getValue()); } return result; }}
阅读全文
0 0
- lintcode-乱序字符串-171
- LintCode 171 乱序字符串
- LintCode-乱序字符串
- LintCode 乱序字符串
- LintCode:乱序字符串
- lintcode,乱序字符串
- lintcode--乱序字符串
- 乱序字符串-LintCode
- Lintcode(4)-乱序字符串
- LintCode(M) 乱序字符串
- Lintcode乱序字符串(时间过长)
- (171)乱序字符串
- 乱序字符串
- 题目:乱序字符串
- 乱序字符串
- 乱序字符串
- 乱序字符串_LintCode
- 乱序字符串
- android ConstraintLayout初次使用笔记
- 动态规划之基础DP专题
- sql server 字符串转成日期格式
- 一个转角--->程序猿
- Qt之retranslateUi
- LintCode 171 乱序字符串
- 互联网微服务API应用编码规范
- 实训第四天之ssh之web.xml
- 安卓用服务做一个简单音乐播放器
- Cannot load vendor library [libmysql.dll or libmysqld.dll]. 找不到指定的模块
- CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
- Spring-Cloud-Gateway 源码解析 —— 路由(2.4)之 Kotlin 自定义 RouteLocator
- React4 事件处理
- 动态规划之区间DP专题