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

深圳做营销网站建设辽宁短视频搜索seo哪家实惠

深圳做营销网站建设,辽宁短视频搜索seo哪家实惠,注册网站刀具与钢材范围,佛山建网站费用题目描述 给你一个字符串数组#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“n…题目描述 给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]] 示例 2: 输入: strs [“”] 输出: [[“”]] 示例 3: 输入: strs [“a”] 输出: [[“a”]] 提示 1 strs.length 104 0 strs[i].length 100 strs[i] 仅包含小写字母 思路1 题目看起来比较简单找出字符串数组中字母相同的字符串放在一个列表中最后把所有列表返回思路就是分两步第一步找出来第二步放在列表中 首先是怎么找出字母相同的数组简单思路就是把单词中的每个字母对应的ASCII值加起来这样做的问题也很明显会出现单词不一样但是加起来的值一样做了改进对字母的ASCII值做平方再相加目的是为了两个字母的差值更大减小单词不一样值加起来一样的概率但是这个不是正确解决思路只是一种投机行为这种方式只能减小但不能完全消除所以按照这个思路的代码通过了107 / 120个测试用例 第二步就是放在列表中依照上述思路就想到了mapkey是单词字母的ASCII值做平方再相加的结果value就是一个列表里面是结果相同的单词按照这种思路遍历完字符串数组再遍历map,将map的value添加到列表中返回以下是代码 public ListListString groupAnagrams(String[] strs) {ListListString res new ArrayList();if (strs.length 0) {return res;}if (strs.length 1) {res.add(new ArrayList(Collections.singleton(strs[0])));return res;}MapInteger, ListString listMap new HashMap();for (String s : strs) {int sum 0;for (int i 0; i s.length(); i) {sum s.charAt(i) * s.charAt(i);}Integer integer Integer.valueOf(sum);ListString list listMap.get(integer);if (null list) {list new ArrayList();}list.add(s);listMap.put(integer, list);}for (Map.EntryInteger, ListString value : listMap.entrySet()) {res.add(value.getValue());}return res;}思路1优化 优化的思路就是怎么得到每个单词的那个唯一值投机的方式就是再放大平方不行就立方依次往上果然4次方就通过了但是这种思路只能减小不能完全解决而且运算量也会增大。在美版leetcode上看到大神的思路用质数表示26个字母把字符串的各个字母相乘这样可保证字母异位词的乘积必定是相等的。这种原则上可以但是一些过长的字符串乘积值会溢出。public static ListListString groupAnagrams(String[] strs) {ListListString res new ArrayList();if (strs.length 0) {return res;}if (strs.length 1) {res.add(new ArrayList(Collections.singleton(strs[0])));return res;}int[] ints new int[]{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};MapLong, ListString listMap new HashMap();for (String s : strs) {long sum 1;for (int i 0; i s.length(); i) {sum * ints[s.charAt(i) - a];}Long integer Long.valueOf(sum);ListString list listMap.get(integer);if (null list) {list new ArrayList();}list.add(s);listMap.put(integer, list);}for (Map.EntryLong, ListString value : listMap.entrySet()) {res.add(value.getValue());}return res; }思路2 先对每个字符串的从小到大排序含有相同字母排完序的就一致了以排完序的作为keyvalue放未排序的字符串列表public static ListListString groupAnagrams(String[] strs) {ListListString res new ArrayList();if (strs.length 0) {return res;}if (strs.length 1) {res.add(new ArrayList(Collections.singleton(strs[0])));return res;}MapString, ListString listMap new HashMap();for (String s : strs) {String sort s.chars().sorted().collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();ListString list listMap.get(sort);if (null list) {list new ArrayList();}list.add(s);listMap.put(sort, list);}for (Map.EntryString, ListString value : listMap.entrySet()) {res.add(value.getValue());}return res;}使用stream流操作 public static ListListString groupAnagrams(String[] strs) {return new ArrayList(Arrays.stream(strs).collect(Collectors.groupingBy(s - s.chars().sorted().collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString())).values());}
http://www.dnsts.com.cn/news/254869.html

相关文章:

  • 如何制作网站专题网站建设专员求职简历
  • 十大企业网站排行榜泉州网站建设咨询
  • 专业网站建设公司用织梦吗?如果做微商需不需要开个网站
  • 建设工程类网站河南省洛阳市建设银行的网站
  • 用vue框架做的网站国外好的设计网站有哪些
  • 网站功能需求文档网站建设目标
  • seo查询工具潍坊seo外包平台
  • wordpress 英文站赚钱百度账号怎么改用户名
  • 江阴网站建设电商美工招聘信息
  • 娄底建设局官方网站网站做要钱
  • 洛阳做家教去什么网站鱼馆网站的前期策划
  • 湖北网站建站系统哪家好目前电商平台有哪些
  • 做衣服网站的实验感想深圳定制巴士怎么买票
  • 公共交通公司网站建设方案商业广告公司排名
  • 360提交网站idc网站是用什么语言做的
  • 高端网站源码在线制作网站地图
  • 宁波网站建设icp备中南建设的网站
  • 怎么看网站是什么程序做的wordpress 古今
  • 网站开发建站网站和小程序的区别
  • 在洪雅网站做企业招聘成都房产网官网
  • net网站建设教程没有备案的交易网站
  • 免费用手机建立网站品牌宣传策略
  • 做电商看的网站有哪些内容做网站内容管理器要吗
  • 外国网站开放的浏览器网站建设 jz.woonl
  • 网站建设年度汇报钢构网架公司
  • 上海建站资讯wordpress主题超2m
  • 网站建设电销话术开场白朝阳seo
  • 郑州网站建设工作室外汇网站建设公司
  • 宜黄住房和城乡建设部网站wordpress vr主题
  • 科普网站建设方案书WordPress编辑器高亮