lintcode:anagrams 乱序字符串
2016-01-05 22:17
267 查看
题目
您在真实的面试中是否遇到过这个题?
Yes
样例
对于字符串数组 ["lint","intl","inlt","code"]
返回 ["lint","inlt","intl"]
注意
所有的字符串都只包含小写字母
解题
感觉很简单,搞了近两个小时,写了下面的程序
Java Code
乱序字符串
给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。您在真实的面试中是否遇到过这个题?
Yes
样例
对于字符串数组 ["lint","intl","inlt","code"]
返回 ["lint","inlt","intl"]
注意
所有的字符串都只包含小写字母
解题
感觉很简单,搞了近两个小时,写了下面的程序
public class Solution { /** * @param strs: A list of strings * @return: A list of strings */ public List<String> anagrams(String[] strs) { // write your code here List<String> list = new ArrayList<String>(); if(strs == null || strs.length ==0) return list; Map<String,Integer> map = new HashMap<String,Integer>(); String[] strs2 = new String[strs.length]; for(int i=0;i< strs.length;i++){ char[] ch = strs[i].toCharArray(); Arrays.sort(ch); strs2[i] = String.valueOf(ch); if(!map.containsKey(strs2[i])){ map.put(strs2[i],1); }else{ map.put(strs2[i],map.get(strs2[i]) + 1); } } for(int i=0;i<strs.length;i++){ if(map.get(strs2[i]) >1) list.add(strs[i]); } // if(strs.length >=6) // System.out.println(0); return list; } }
Java Code
相关文章推荐
- 基于B-树的图书管理系统课程设计
- 分区表fstab的用法说明
- 安装jira
- 让程序在崩溃时体面的退出之SEH
- MapReduce 图解流程超详细解答(1)-【map阶段】
- s5pv210 的定时器
- 第二章 管理数据库和表
- OpenGL: 矩阵相乘的顺序
- Spring 学习笔记 4. 尚硅谷_佟刚_Spring_属性配置细节
- 创建Material Design风格的Android应用--应用主题
- block的理解与 MRC,ARC下内存管理
- Spring AOP 的实现
- Java 中 StringBuilder 在高性能用法总结
- 控制文件丢失后,进行数据库恢复的过程
- FragmentActivity和Activity的具体区别在哪里
- Kaggle Titanic Competition-第三部分
- matlab中feval函数的用法
- 关于Java中的异常
- 仓央嘉措
- Android屏幕适配全攻略(最权威的官方适配指导)