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

杭州网站设计公司推荐广告设计自学教程

杭州网站设计公司推荐,广告设计自学教程,做店铺装修的公司网站,佛山品牌网站建设重新排列字符串s中的字母,使得任意两个相邻的字母都不相同。 思路: 让相邻字母不同,能想到的办法是先把相同的字母排列, 然后在相同字母的缝隙中插入另一种字母。 比如"aab", 先把"a a"排出来,再…

在这里插入图片描述
重新排列字符串s中的字母,使得任意两个相邻的字母都不相同。

思路:

让相邻字母不同,能想到的办法是先把相同的字母排列,
然后在相同字母的缝隙中插入另一种字母。
比如"aab", 先把"a a"排出来,再在2个a的缝隙中插入b,得到"aba".

那么就需要统计每个字母出现的次数。
为了让能插入字母的缝隙,排列时中间空一位,也就是先把出现最多的字母放在偶数位,
如果不够放就折回来到奇数位,所以字母出现次数不能超过s长度的一半,
不然折回来就是相同字母了。字母的出现次数超过s一半的直接返回“”。

而且一定要先排出现最多的字母(可以试试example1中先排b)。

可以用一个优先队列按字母出现的次数从大到小排列。然后一一取出排列。
也可以只找到出现次数最多的字母,先排列,再直接按顺序排剩下的。

优先队列:

    public String reorganizeString(String s) {HashMap<Character,Integer> map = new HashMap<>();char[] chs = s.toCharArray();//按字母出现的次数倒序排列PriorityQueue<Character> pq = new PriorityQueue<>((a,b)->(map.get(b)-map.get(a)));char[] res = new char[s.length()];for(char c : chs) {map.put(c, map.getOrDefault(c, 0)+1);}pq.addAll(map.keySet());//出现频率最多的字母多于字符串长度的一半if(map.get(pq.peek()) > (s.length()+1)/2) return "";int i = 0;while(!pq.isEmpty()) {char c = pq.poll();for(int j = 0; j < map.get(c); j++) {if(i >= s.length()) i = 1;  //偶数位放满,开始放奇数位res[i] = c;i += 2;}}return new String(res);}

只先排出现次数最多的,剩下的按顺序排。此方法更快。

    public String reorganizeString(String s) {int[] cnt = new int[26];char[] chs = s.toCharArray();int n = chs.length;char[] res = new char[n];for(int i = 0; i < n; i++) cnt[chs[i]-'a']++;//找到出现次数最多的字母和次数int maxCnt = 0;int freqCh = 0;for(int i = 0; i < 26; i++) {if(cnt[i] > maxCnt) {maxCnt = cnt[i];freqCh = i;}}if(maxCnt > (n+1)/2) return "";//先排出现最多的字母,不然可能会出现奇数位和偶数位是同一字母的情况int idx = 0;while(cnt[freqCh] > 0) {res[idx] = (char)(freqCh + 'a');idx += 2;cnt[freqCh] --;}for(int i = 0; i < 26; i++) {while(cnt[i] > 0) {if(idx >= n) idx = 1;res[idx] = (char)(i+'a');idx += 2;cnt[i] --;}}return new String(res);}
http://www.shuangfujiaoyu.com/news/46523.html

相关文章:

  • 陕西印象西府文化发展有限公司上海全国关键词排名优化
  • 龙华做棋牌网站建设多少钱114啦网址导航官网
  • 移动端网站的优势引流推广多少钱一个
  • 沧州有做网站的吗口碑营销5t
  • 专门做win7系统的网站宁波seo教程行业推广
  • 建设银行论坛网站百度站长平台注册
  • 公司网站建设免费夫唯seo培训
  • 网站限制流量网站接广告平台
  • 阳泉购物网站开发设计网络游戏推广员的真实经历
  • 后台做网站的题外贸网站推广费用
  • 独立博客网站制作市场营销四大分析方法
  • 东莞建网站公司哪个好百度联盟怎么赚钱
  • 淘宝做网站靠谱seo求职
  • 互联网100个创业项目名称seo技巧seo排名优化
  • 网站建设需要什么教材网站发布与推广方案
  • 金银饰品那家网站做的好百度游戏风云榜
  • 公司请人做公司网站会计分录淘宝标题优化工具推荐
  • 音乐网站还可以做百度小说
  • 做家政的在哪些网站推广每日新闻播报
  • 阿里快速建站seo怎么收费seo
  • 深圳自适应网站制作网站性能优化方法
  • 眉山市住房城乡建设局 网站会计培训班的费用是多少
  • 网站建设怎么改栏目名称关键词调词平台哪个好
  • 桂林建网站哪家好网站建站系统
  • 沈阳营销型网站网站百度权重查询
  • 企业在网站推广韩国搜索引擎排名
  • 怎么做卡蜜网站安卓优化大师老版本下载
  • 北京网站定制今日冯站长之家
  • 怎么做网页模板展示网站天津百度爱采购
  • java如何做租房网网站今日新闻50字