字符串变换最小字符串

字符串变换最小字符串

给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。

变换规则:交换字符串中任意两个不同位置的字符。

输入描述:

一串小写字母组成的字符串s

输出描述:

按照要求进行变换得到的最小字符串

示例1

输入
abcdef
输出
abcdef

说明

abcdef已经是最小字符串,不需要交换

示例2

输入
bcdefa
输出
acdefb

说明

a和b进行位置交换,可以得到最小字符串

备注:

  • s是都是小写字符组成
  • 1<=s.length<=1000
C++
#include <bits/stdc++.h>

using namespace std;

void quickSort(string &str,int left,int right);
int main() {
	string str;
	getline(cin,str);
	quickSort(str,0,str.length() - 1);
	
	system("pause");
	return 0;
}

void quickSort(string &str,int left,int right)
{
	if (left >= right)
	{
		return;
	}
	//选取中间节点为种子节点
	int mid = left + (right - left) / 2;
	int i = left;
	int j = right;
	char normal = str[mid];
	while(i <= j)
	{
		if(str[i] < normal && i <= j)
		{
			i++;
			continue;
		}
		if(str[j] > normal && i <= j)
		{
			j--;
			continue;
		}
		char temp = str[i];
		str[i] = str[j];
		str[j] = temp;
		i++;
		j--;
	}
	quickSort(str, left, j);
	quickSort(str, i, right);
}


全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务