【2020.01.24】算法学习记录——字母异位词分组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【2020.01.24】算法学习记录——字母异位词分组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1449字,纯文字阅读大概需要3分钟。
内容图文
![【2020.01.24】算法学习记录——字母异位词分组](/upload/InfoBanner/zyjiaocheng/645/f40e58fc1cdd4bf1b52056c37dca7565.jpg)
算法-字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
输出:
[
[“ate”,“eat”,“tea”],
[“nat”,“tan”],
[“bat”]
]
来源:力扣(LeetCode)
import java.util.*;
public class GroupAnagram {
public static void main(String[] args){
String[] input = new String[6];
input[0] = "eat";
input[1] = "tea";
input[2] = "tan";
input[3] = "ate";
input[4] = "nat";
input[5] = "bat";
System.out.println(groupAnagrams(input));
}
public static String order(String input){
String result = "";
char[] str = input.toCharArray();
for(int i = 1; i<str.length;i++){
for(int j=0; j<str.length-1;j++){
if(str[j]>str[i]){
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
result = String.valueOf(str);
return result;
}
public static List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> result = new ArrayList<List<String>>();
for(int i = 0; i<strs.length; i++){
String change = order(strs[i]);
if(result.size() == 0){
List<String> inner = new ArrayList<String>();
inner.add(strs[i]);
result.add(inner);
}
else{
String flag = "not";
for(int j = 0; j<result.size();j++){
if(order(result.get(j).get(0)).equals(change)){
result.get(j).add(strs[i]);
flag = "have";
}
}
if(flag.equals("not")){
List<String> addition = new ArrayList<>();
addition.add(strs[i]);
result.add(addition);
}
}
}
return result;
}
}
cletitia
发布了17 篇原创文章 · 获赞 0 · 访问量 221
私信
关注
内容总结
以上是互联网集市为您收集整理的【2020.01.24】算法学习记录——字母异位词分组全部内容,希望文章能够帮你解决【2020.01.24】算法学习记录——字母异位词分组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。