博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode] Anagrams
阅读量:6124 次
发布时间:2019-06-21

本文共 1171 字,大约阅读时间需要 3 分钟。

hot3.png

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

思路:anagram的题目,CC150也有,如何判断是anagram,一种是用hashmap存字符数来判断,另一种是排序后字符相同来判断。这个题目采用排序后的字符作为hashmap的key,是anagram的都归为一组。

import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;public class Solution {	public ArrayList
anagrams(String[] strs) { if (strs == null) return null; ArrayList
res = new ArrayList
(); HashMap
> group = new HashMap
>(); for (String each : strs) { char[] tmp = each.toCharArray(); Arrays.sort(tmp); String key = new String(tmp); if (group.containsKey(key)) { group.get(key).add(each); } else { ArrayList
newList = new ArrayList
(); newList.add(each); group.put(key, newList); } } for (String each : group.keySet()) { if (group.get(each).size() > 1) { res.addAll(group.get(each)); } } return res; } public static void main(String[] args) { System.out.println(new Solution().anagrams(new String[] { "abc", "acb", "cba", "aaa", "bb", "bb" })); }}

参考:

转载于:https://my.oschina.net/jdflyfly/blog/284345

你可能感兴趣的文章
并行程序设计学习心得1——并行计算机存储
查看>>
JAVA入门到精通-第86讲-半双工/全双工
查看>>
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>