当前位置: 首页 > news >正文

华为机试真题--字符串变换最小字符串

题目描述:

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

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

输入描述:

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

输出描述:

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

特别注意:
s是都是小写字符组成,1<=s.length<=1000

例如:输入 bcdefa,输出就是acdefb;输入abcdef,输出abcdef;

示例1:

输入
abcdef

输出
abcdef

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

示例2:

输入
bcdefa

输出
acdefb

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

C++源码:

#include <iostream>
#include <algorithm> 
using namespace std;char findAndSwap(string& str) {if (str.empty()) {cout << "字符串为空!" << endl;return '\0'; // 如果字符串为空,返回空字符}// 找到字典序最小的字符的位置auto minIt = min_element(str.begin(), str.end());// 如果最小的字符已经在第一个位置,不需要交换if (minIt == str.begin()) {return *minIt; // 直接返回这个字符即可}// 执行交换char temp = *str.begin(); // 保存第一个字符*str.begin() = *minIt;   // 将找到的最小字符放到第一个位置*minIt = temp;           // 将原来的第一个字符放到找到的最小字符的位置return temp; // 返回被交换走的原第一个字符
}int main() {string str;cout << "请输入一个字符串: ";cin >> str;char originalFirstChar = findAndSwap(str);cout << "处理后的字符串: " << str << endl;cout << "被交换到原第一个位置的字符是: " << originalFirstChar << endl;system("pause"); // 暂停程序,以便查看输出return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 初识STM32:寄存器编程 × 库函数编程 × 开发环境
  • ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver
  • 如何从数码相机恢复已删除的照片
  • Python开发—— 列表的高级操作与应用
  • spring监听事件
  • Obsidian 文档编辑器
  • R 绘图 - 饼图
  • 【ROS2】中级-编写动作服务器和客户端(Python)
  • 从零手写实现 nginx-26-rewrite url 重写
  • javafx基础知识
  • 【RAG KG】GraphRAG开源:查询聚焦摘要的图RAG方法
  • 打卡第7天-----哈希表
  • Istio实战教程:Service Mesh部署与流量管理
  • AutoMQ 与蚂蚁数科达成战略合作
  • 机器学习——随机森林
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Android优雅地处理按钮重复点击
  • CentOS 7 防火墙操作
  • CentOS6 编译安装 redis-3.2.3
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • httpie使用详解
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • markdown编辑器简评
  • mysql 数据库四种事务隔离级别
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • NSTimer学习笔记
  • October CMS - 快速入门 9 Images And Galleries
  • Python十分钟制作属于你自己的个性logo
  • SegmentFault 2015 Top Rank
  • vue-router的history模式发布配置
  • Vue学习第二天
  • 大主子表关联的性能优化方法
  • 第十八天-企业应用架构模式-基本模式
  • 反思总结然后整装待发
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 温故知新之javascript面向对象
  • 我看到的前端
  • 小李飞刀:SQL题目刷起来!
  • 最简单的无缝轮播
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 回归生活:清理微信公众号
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (11)MATLAB PCA+SVM 人脸识别
  • (C语言)逆序输出字符串
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (编译到47%失败)to be deleted
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)SSM环卫人员管理平台 计算机毕设36412