当前位置: 首页 > news >正文

珠海市企业网站制作服务机构怎么套网站

珠海市企业网站制作服务机构,怎么套网站,厦门网站设计大概多少钱,企业网站建设 网络服务题目 给定一组单词,请将它们按照变位词分组。例如,输入一组单词[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”],这组单词可以分成3组,分别是[“eat”,“…

题目

给定一组单词,请将它们按照变位词分组。例如,输入一组单词[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”],这组单词可以分成3组,分别是[“eat”,“tea”,“ate”]、[“tan”,“nat”]和[“bat”]。假设单词中只包含英文小写字母。

分析

第一种方法是把每个英文小写字母映射到一个质数,如把字母’a’映射到数字2,字母’b’映射到数字3,以此类推,字母’z’映射到第26个质数101。每给出一个单词,就把单词中的所有字母对应的数字相乘,于是每个单词都可以算出一个数字。

例如,单词"eat"可以映射到数字1562(11×2×71)。如果两个单词互为变位词,那么它们中每个字母出现的次数都对应相同,由于乘法满足交换律,因此上述算法把一组变位词映射到同一个数值。例如,单词"eat"、"tea"和"ate"都会映射到数字1562。由于每个字母都是映射到一个质数,因此不互为变位词的两个单词一定会映射到不同的数字。

public class Test {public static void main(String[] args) {String[] strs = {"eat","tea","tan","ate","nat","bat"};List<List<String>> result= groupAnagrams(strs);for (List<String> res : result){System.out.println(res);}}public static List<List<String>> groupAnagrams(String[] strs){int[] hash = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101};Map<Long,List<String>> groups = new HashMap<>();for (String str : strs){long wordHash =1;for (int i = 0; i < str.length(); i++) {wordHash *= hash[str.charAt(i) - 'a'];}groups.putIfAbsent(wordHash,new LinkedList<>());groups.get(wordHash).add(str);}return new LinkedList<>(groups.values());}
}

分析

第二种方法是把一组变位词映射到同一个单词。由于互为变位词的单词的字母出现的次数分别相同,因此如果把单词中的字母排序就会得到相同的字符串。

例如,把"eat"、“tea"和"ate"的字母按照字母表顺序排序都得到字符串"aet”。因此,可以定义一个哈希表,哈希表的键是把单词字母排序得到的字符串,而值为一组变位词。

public class Test {public static void main(String[] args) {String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};List<List<String>> result = groupAnagrams(strs);for (List<String> res : result) {System.out.println(res);}}public static List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> groups = new HashMap<>();for (String str : strs) {char[] charArray = str.toCharArray();Arrays.sort(charArray);String sorted = new String(charArray);groups.putIfAbsent(sorted, new LinkedList<>());groups.get(sorted).add(str);}return new LinkedList<>(groups.values());}
}
http://www.yayakq.cn/news/388463/

相关文章:

  • 辽宁省住房城乡建设厅网站win淘宝客wordpress主题模板
  • 服装网站论文保险网站程序源码
  • netcore网站开发实战网站建设毕设
  • 临猗县 保障住房和建设住建网站沧州网络制作公司有哪些
  • 网站开发需要解决难题个人网站可以做音乐下载网
  • wordpress 资源文件上海关键词排名优化价格
  • 卡片式设计的网站上海网站建设专业公司
  • 山东省城乡建设部网站首页wordpress 发布网站
  • 协会网站建设哪里实惠哪个网站做简历免费下载
  • 齐鲁泰安人才网长沙优化排名
  • 阜宁网站制作哪家好云南工程建设投标网上报名网站
  • 专业网站设计工作室包头网站建设
  • 网站是怎么建立的网页设计网站有哪些
  • 做一个好一点网站费用多少电商网站首页图片
  • 网站开发的可行性分析深圳签网站
  • 广东网站备案 时间企业网站建设市场分析
  • 收到短信说备案被退回但工信部网站上正常啊跳出率 网站
  • 收费网站解决方案连云港专业网站优化
  • 嘉兴手机网站开发费用做一个学校网站怎么做
  • 道路建设网站河南那家公司做家具行业网站好
  • 证券公司网站建设方案企业策划书内容
  • 罗湖做网站的住房建设部网站监理员
  • 嘉兴网站系统总部电影采集网站怎么做seo
  • 用家庭宽带做网站 没有8080端口可以吗wordpress自定义文章链接
  • 加盟网站制作广州市海珠区最新官方消息
  • 帝国cms做企业网站淄博建设工程学校官方网站
  • seo批量建站方法能制作网页的软件
  • 做二手车那个网站会员性价比高不需要付费的网站
  • 网站项目需要什么深圳建设工程质量检测中心
  • 做个网站多少费用做文库网站怎么赚钱吗