830. String Sort
830. String Sort
题解
int alpha[256] = {0};//记录字符的次数
bool cmp(char a,char b)
{
	if(alpha[a]==alpha[b])//如果次数相同
	{
		return a<b;
	}
	return alpha[a]>alpha[b];
}
class Solution {
public:
    /**
     * @param str: the string that needs to be sorted
     * @return: sorted string
     */
    string stringSort(string &str) {
        // Write your code here
        memset(alpha,0,sizeof(alpha)*sizeof(int));
        //统计各字符出现次数
    	for(int i=0;i<str.length();i++)
    	{
    		alpha[str[i]]++;
    	}
        sort(str.begin(),str.end(),cmp);
        return str;
    }
};
遇到问题
Input
"lintcode"
Output
"oelcdint"
Expected
"cdeilnot"
这是因为缺少了memset语句,没有对alpha数组进行初始化,这说明了OJ中写在class Solution外部的变量都需要手动初始化。
总结
- 使用标准库的sort函数很方便,但是效率上会低一些。跑完数据用时151ms。
- 对cmp(p1,p2)的理解,cmp函数内部返回真时p1排在前面,返回假时p2排在前面
830. String Sort的更多相关文章
- Codeforces Round #582 (Div. 3) F. Unstable String Sort
		传送门 题意: 你需要输出一个长度为n的字符序列(由小写字母组成),且这个字符串中至少包含k个不同的字符.另外题目还有要求:给你两个长度为p和q的序列,设字符序列存在s中 那么就会有s[Pi]< ... 
- CF1213F Unstable String Sort(差分)
		其实全部可以为同一种字符串,但题目要求\(k\)种,我们考虑开始尽可能不同,最后再取\(min\) 考虑\(A\),全部不同:再做\(B\),\(S[b_{i-1}]\le S[b_{i}]\)如果开 ... 
- Codeforces 1213F Unstable String Sort
		cf题面 中文题意 求一个由最多26个.最少k个小写字母构成的,长度为n的字符串,这个字符串要满足的要求是--当其中字母按照p和q两个\(1\)~\(n\)的全排列重新排序时,新的字符串是按照升序排好 ... 
- CF1213F Unstable String Sort
		题目链接 问题分析 题目实际上是一堆大于等于的约束.观察这\(2n-2\)个约束.第一组可以将要求的排成一个不降的序列,然后第二组就是在第一组的基础上再添加条件. 不妨设第一组生成的不降序列是\(\{ ... 
- codeforces1213F Unstable String Sort   思维
		题目传送门 题意:a和b都代表字符串的下标,至少用k个字符,构造一个长度为n的字符串,将这个字符串中的字符按无论是按$a$写还是按$b$写,字典序都非递减. 思路:如果将$a[l,r]=b[l,r]$ ... 
- G面经prepare: Sort String Based On Another
		Given a sorting order string, sort the input string based on the given sorting order string. Ex sort ... 
- [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
		题目: Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Inp ... 
- 基础笔记3(二)(专门处理String的正则表达式)
		1.常规判断一个字符串是以什么开头,是否是数字的判断方式有: a.通过比较每个字符,注意比较是字符值(ASc码值),不是字面值 String s="); //判断每个字符数组的每个字符 ch ... 
随机推荐
- Python:pip 和pip3的区别
			前言 装完python3后发现库里面既有pip也有pip3,不知道它们的区别,因此特意去了解了一下. 解释 先搜索了一下看到了如下的解释, 安装了python3之后,库里面既会有pip3也会有pip ... 
- 基于thinkphp实现根据用户ip判断地理位置并提供对应天气信息的应用
			https://blog.csdn.net/MyCodeDream/article/details/46706469 我们都知道,在很多的网站都提供了给用户提供天气预报的功能,有时会发现,用户即使不输 ... 
- npm镜像及配置方法
			npm全称Node Package Manager,是node.js的模块依赖管理工具.由于npm的源在国外,所以国内用户使用起来各种不方便.下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选 ... 
- 原生js实现最简单的瀑布流布局
			文章地址 https://www.cnblogs.com/sandraryan/ 瀑布流:瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动, ... 
- 使用java实现CNN的实战
			使用java实现CNN的实战 1.要实现CNN,其中包括 卷积.池化(下采样).分类器.优化方法.分类器.反向传播 2.可以使用一个三维数组来表示一张图片(通道.行.列) 3.卷积,卷积的方式有三种: ... 
- [WC2013]平面图——平面图点定位
			[WC2013]平面图 码农题 平面图点定位: 1.平面图转对偶图:[HNOI2016]矿区 2.扫描线点定位 把所有的顶点和询问点排序,扫描线 每个边在fr的位置加入,to的位置删除,竖直直线不要 ... 
- Total Commander 显示文件包含文件名扩展
			在默认的 Total Commander 是分开文件名和文件扩展,如果想要让文件名同时显示扩展,可以通过设置合并文件名和扩展两列 点击配置,在选项的制表修改显示 How to configure To ... 
- POJ 2253 Frogger(SPFA运用)
			Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Fro ... 
- CentOS yum有时出现“Could not retrieve mirrorlist ”的解决办法——resolv.conf的配置
			国内服务器在运行命令yum -y install wget的时候,出现: Could not retrieve mirrorlist http://mirrorlist.centos.org/?rel ... 
- CodeForces - 1189  E.Count Pairs (数学)
			You are given a prime number pp, nn integers a1,a2,…,ana1,a2,…,an, and an integer kk. Find the numbe ... 
