Leetcode 451.根据字符出现频率排序
根据字符出现频率排序
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
示例 1:
输入:
"tree"
输出:
"eert"
解释:
'e'出现两次,'r'和't'都只出现一次。
因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。
示例 2:
输入:
"cccaaa"
输出:
"cccaaa"
解释:
'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案。
注意"cacaca"是不正确的,因为相同的字母必须放在一起。
示例 3:
输入:
"Aabb"
输出:
"bbAa"
解释:
此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。
注意'A'和'a'被认为是两种不同的字符。
利用PriorityQueue去做
 public class Solution {
     public String frequencySort(String s) {
         Map<Character,Integer> map = new HashMap<>();
         char[] letters = s.toCharArray();
         for(char l:letters) {
             if(map.containsKey(l)) {map.put(l, map.get(l)+1);}
             else {map.put(l, 1);}
         }
         PriorityQueue<Map.Entry<Character,Integer>> pq = new PriorityQueue<>(
                 new Comparator<Map.Entry<Character,Integer>>(){
                     @Override
                     public int compare(Map.Entry<Character,Integer> a,Map.Entry<Character,Integer> b) {
                         return b.getValue()-a.getValue();
                     }
                 }
         );
         pq.addAll(map.entrySet());
         StringBuilder sb = new StringBuilder();
         while(!pq.isEmpty()) {
             Map.Entry<Character, Integer> e = pq.poll();
             for(int i=0;i<e.getValue();i++) sb.append(e.getKey());
         }
         return sb.toString();
     }
 }
Leetcode 451.根据字符出现频率排序的更多相关文章
- Java实现 LeetCode 451 根据字符出现频率排序
		451. 根据字符出现频率排序 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e ... 
- leetcode.排序.451根据字符出现频率排序-Java
		1. 具体题目 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r ... 
- [LeetCode] 451. Sort Characters By Frequency 根据字符出现频率排序
		Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ... 
- LeetCode 451. Sort Characters By Frequency (根据字符出现频率排序)
		Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ... 
- [LeetCode] Sort Characters By Frequency 根据字符出现频率排序
		Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ... 
- 451 Sort Characters By Frequency 根据字符出现频率排序
		给定一个字符串,请将字符串里的字符按照出现的频率降序排列.示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次.因此' ... 
- 【LeetCode】451-根据字符出现频率排序
		题目描述 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和' ... 
- [Swift]LeetCode451. 根据字符出现频率排序 | Sort Characters By Frequency
		Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ... 
- 给定一个字符串,根据字符出现频率排序--Java实现
		题目描述: 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入:"tree" 输出:"eert" 解释:'e'出现两次,'r'和't' ... 
随机推荐
- Ubuntu 16.04 server版本开机启动脚本不支持
			Ubuntu16.04开机启动的脚本一直不支持,错误用在将开机启动脚本放到了home/usr/的目录下,应该放到/root才能正常启动.#!/bin/sh -e ## rc.local## This ... 
- HTTP 错误 500.0 - Internal Server Error
			最近在二次开发一个APS.NET网站,将网站部署到IIS后,输入:http://localhost/upload/ 时,报错“HTTP 错误 500.0 - Internal Server Error ... 
- SharePoint Online 缺少“将站点另存为模板”
			之前文章行给出在SharePoint 2010 .SharePoint 2013 中将站点保存模板选项的文章.其实同样的问题出现在Microsoft Office 365的一部分SharePoint ... 
- Web端 页面跳转  页面传值
			要把 Default.aspx 页面 TextBox1中的值 传值到 Default.aspx Label上去 C#服务端跳转页面 Response 响应请求对象 Redi ... 
- 修改wamp的数据库密码
			方法/步骤 一:修改数据库密码 1.点开MySQL console进入数据库编辑框,然后按回车键,会出现图2的效果. 2.接着输入“use mysql” 下面提示“Database chang ... 
- BZOJ 4070:[APIO2015]雅加达的摩天楼 最短路
			4070: [Apio2015]雅加达的摩天楼 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 464 Solved: 164[Submit][Sta ... 
- 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 :
			1 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 : dlg1.h(23) : error C2065: 'IDD_DIALOG1' : und ... 
- Android(java)学习笔记131:关于构造代码块,构造函数的一道面试题(华为面试题)
			1. 代码实例: package text; public class TestStaticCon { public static int a = 0; static { a = 10; System ... 
- [论文理解]SSD:Single Shot MultiBox Detector
			SSD:Single Shot MultiBox Detector Intro SSD是一套one-stage算法实现目标检测的框架,速度很快,在当时速度超过了yolo,精度也可以达到two-stag ... 
- 通用的flash代码
			黑体字部分为常修改的部分 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=&quo ... 
