基于C++ STL sort函数对c++ string 进行字符串的局部排序
Paypal笔试挂了,因为好久没有在leedcode之类的网上写代码,字符输入调了半天,时间都用光了。。。。
Description: 有一个字符串,现在对其进行多次局部排序,例如str="abcdef",输入a=0, s=1,e=3,表示对abc这个子字符串进行降序排列:cbadef。若a=1,表示按照升序排列,a=0表示降序;s,e表示起始和终止字符的位置。给出的输入如下:
10 3
naitdocexv
1 1 3
0 9 10
1 7 9
10 代表字符串的长度,3表示进行3次操作,下一行是字符串,之后是三种操作,顺序是a, s, e。
代码如下:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <algorithm>
#include <fstream>
using namespace std;
int cmp0(char& a, char& b)
{
return a>b;
}
int cmp1(char& a, char& b)
{
return a<b;
}
void ReorderOneTime(int a, int s, int e, char* str)
{
if(a==0)
{
sort(str +s- 1, str+ e , cmp0);//不要用str+e-1,这里sort中的第二个入参表示的字符不参与排序。
}
else
{
sort(str + s - 1, str+ e , cmp1);
}
}
int main()
{
ifstream cin("C:\\Users\\FrankFang\\Desktop\\234.txt");
string str;
int m, n;
cin >> m;
cin >> n;
cin >> str;
while (n>0)
{
int a, s, e;
cin >> a; cin >> s; cin >> e;
ReorderOneTime( a, s, e, &str[0]);
n--;
}
cout << str;
}
基于C++ STL sort函数对c++ string 进行字符串的局部排序的更多相关文章
- 分享stl sort函数坑点导致coredump问题
在<Effective STL> 的条款21中就有讨论:永远让比较函数对相同元素返回false! 也就是说在实现stl sort函数自定义比较器时,一定要满足这种严格弱序化的问题.
- STL sort()函数
C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数,不同的函数,实现的算法又不尽相同 ...
- STL——sort函数简介
参考:http://blog.csdn.net/s030501408/article/details/5329477 0)与C标准库qsort的比较:http://bbs.csdn.net/topic ...
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
- STL::sort函数实现
声明:本文参考链接:STL::sort实现. 排序是面试中经常被问及的算法基础知识点,虽然实际应用中不会直接使用,但是理解这些简单的算法知识对于更复杂更实用的算法有一定的帮助,毕竟面试总不能问的太过深 ...
- STL sort 函数实现详解 ZZ
前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不对劲,知道自己回答错了.这几天特意看了一下,在 ...
- python下使用sort()函数对目录下文件名进行多条件排序
目录 1.基础函数 2.例子解析 参考 1.基础函数 a.sort()函数 sort()函数的作用是对列表内容进行正向排序,直接在原列表进行修改,返回的是修改后的列表. lists =[1, 5, 1 ...
- STL sort函数的用法
sort在STL库中是排序函数,有时冒泡.选择等O(N^2)算法会超时时,我们可以使用STL中的快速排序O(N log N)完成排序 sort在<algorithm>库里面,原型如下: t ...
- C++ STL sort()函数用法
C++STL提供的在里的排序函数,有以下两种形式 此外还提供有稳定排序版本stable_sort(),用法类似. 第一种形式: template <class RandomAccessItera ...
随机推荐
- iOS开源库分类
语言库 rx aop kvo 功能库 UI network data-model-map cache 跨平台库 wkjscorebridge jspatch 性能监控库:友盟 部署库:jspathc ...
- UNICODE和UCS
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案.目前的Unicode字符分为17组编排,0x0000 至 0xFFFF,每组称为平面(Plane),而每平面拥有65536个码 ...
- [Inside HotSpot] Serial垃圾回收器 (一) Full GC
Serial垃圾回收器Full GC Serial垃圾回收器的Full GC使用标记-压缩(Mark-Compact)进行垃圾回收,该算法基于Donald E. Knuth提出的Lisp2算法,它会把 ...
- Oracle 实现自增主键
废话不多讲,直接上代码 //1.创建表 Create Table testZcm( Id Number(2) Not Null Primary Key, postCode Nu ...
- day39线程
复习: C/S架构: 客户端 服务器模式 B/S架构: 浏览器 服务器模式 B/S架构的客户端对PC机的性能要求比较低.统一了应用的接口 B/S架构隶属于C/S架构 TCP UDP的区 ...
- [转载] miller rabin
本文转载自https://www.cnblogs.com/zsq259/p/11602175.html Miller-Rabin 事先声明,因为菜鸡Hastin知识水平有限就是菜,因此语言可能不是特别 ...
- Selenium元素定位的几种方式
一.通过id查找 例:<input id="kw" name="wd" class="s_ipt" value="" ...
- date -d
date -d ‘2 days ago’ //显示2天以前的时间date -d ‘60 second ago’ //显示60秒以前的时间 date -d '3 months 1 day' //显示3月 ...
- 异常0xc000041d的抛出过程
为了说明这个过程,我们必须写一个示例程序,如下: #include "stdafx.h" #include <tchar.h> #include <stdio.h ...
- JS线程机制与事件机制
JS线程机制与事件机制 1.进程与线程 (1).定义: 进程:程序的一次执行,它占有一片独有的内存空间 CPU的基本调度单位,是程序执行的一个完整的流程 (2).进程与线程的关联 一个进程一般至少有一 ...