Leetcode每日一题:1370.increasing-decreasing-string(上升下降字符串)

在这里插入图片描述
思路:规规矩矩按题目来,飘过;
在这里插入图片描述

static bool cmp(char a, char b)
{
	return a < b;
}

string sortString(string s)
{
	int len = s.size();
	if (len == 0)
		return "";
	if (len == 1)
		return s;
	sort(s.begin(), s.end(), cmp);
	string res;
	vector<bool> flag(len, true);
	int count = 0;
	while (true)
	{
		//找到最小值
		for (int i = 0; i < len; i++)
		{
			if (flag[i])
			{
				res.push_back(s[i]);
				flag[i] = false;
				count++;
				break;
			}
		}
		//第一轮
		for (int i = 1; i < len; i++)
		{
			if (flag[i] && s[i] > res.back())
			{
				res.push_back(s[i]);
				flag[i] = false;
				count++;
			}
		}
		//找到最大值
		for (int i = len - 1; i >= 0; i--)
		{
			if (flag[i])
			{
				res.push_back(s[i]);
				flag[i] = false;
				count++;
				break;
			}
		}
		//第二轮
		for (int i = len - 1; i >= 0; i--)
		{
			if (flag[i] && s[i] < res.back())
			{
				res.push_back(s[i]);
				flag[i] = false;
				count++;
			}
		}
		if (count == len)
		{
			break;
		}
	}
	return res;
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页