2024年华为OD机试真题-字符串变换最小字符串-(C++)-OD统一考试(C卷)

题目描述:

给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。

输入描述:一串小写字母组成的字符串s

输出描述:按照要求进行变换得到的最小字符串

补充说明:s是都是小写字符组成
                  1<=s.length<=1000

示例 

示例1

输入:abcdef

输出:abcdef

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

示例2

输入:bcdefa

输出:acdefb

说明:a和b进行位置交换,可以等到最小字符串

#include <iostream>
#include <string>
 
using namespace std;
 
 
int main()
{
	int i = 0;
	string str;
	cin >> str;
 
	int indexmin = -1;
 
	int min = INT16_MAX;
	
	while (str[i] <= str[i + 1] && i < str.size() - 1) {
		++i;
	}
 
	int j = i + 1;
	if (j >= str.size()) {
		cout << str;
		return 0;
	}
 
 
	for (i = j; i < str.size(); ++i)
	{
		if (str[i] <= min)
		{
			indexmin = i;
			min = str[i];
		}
	}
 
	for (i = 0; i < str.size(); ++i)
	{
		if (str[indexmin] < str[i]) {
			swap(str[indexmin], str[i]);
			break;
		}
	}
	cout << str;
	
}

 

最近更新

  1. TCP协议是安全的吗?

    2024-01-31 12:26:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-31 12:26:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-31 12:26:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-31 12:26:01       20 阅读

热门阅读

  1. [Vue3] reactive数据改变,视图不更新的问题

    2024-01-31 12:26:01       26 阅读
  2. 走进CSS过渡效果的奇妙世界:详解CSS Transition

    2024-01-31 12:26:01       30 阅读
  3. 详解python opencv 归一化

    2024-01-31 12:26:01       36 阅读
  4. golang实现pdf中自动换行的表格

    2024-01-31 12:26:01       43 阅读
  5. 大厂 Go 工程师面试题集锦.

    2024-01-31 12:26:01       31 阅读
  6. Oracle 备份 还原 导入 导出 数据库

    2024-01-31 12:26:01       31 阅读
  7. MacOS 14.3 安装 brew

    2024-01-31 12:26:01       39 阅读