首页 > Python资料 博客日记
华为OD机试E卷 --字符串变换最小字符串 --24年OD统一考试(Java & JS & Python & C & C++)
2025-01-01 03:00:06Python资料围观13次
Python资料网推荐华为OD机试E卷 --字符串变换最小字符串 --24年OD统一考试(Java & JS & Python & C & C++)这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣
题目描述
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。 变换规则:交换字符串中任意两个不同位置的字符。
输入描述
一串小写字母组成的字符串s
输出描述
按照要求进行变换得到的最小字符串
用例
输入
abcdef
输出
abcdef
说明
abcdef已经是最小字符串,不需要交换
输入
bcdefa
输出
acdefb
说明
a和b进行位置交换,可以得到最小字符串
备注:
s是都是小写字符组成
1<=s.length<=1000
题目解析
- 遍历字符串:从左到右遍历字符串,找到第一个可以交换的位置。
- 寻找最小字符:对于每个字符,从当前位置之后的字符中找到最小的字符。
- 交换字符:如果找到的最小字符比当前字符小,则进行交换。
- 返回结果:如果进行了交换,返回交换后的字符串;如果没有进行交换,返回原字符串。
JS算法源码
function getMinString(s) {
let chars = s.split('');
let n = chars.length;
for (let i = 0; i < n - 1; i++) {
let minChar = chars[i];
let minIndex = i;
for (let j = i + 1; j < n; j++) {
if (chars[j] < minChar) {
minChar = chars[j];
minIndex = j;
}
}
if (minIndex !== i) {
[chars[i], chars[minIndex]] = [chars[minIndex], chars[i]];
return chars.join('');
}
}
return s;
}
// 示例输入
const s = "acb";
console.log(getMinString(s)); // 输出 "abc"
java算法源码
public class Main {
public static String getMinString(String s) {
char[] chars = s.toCharArray();
int n = chars.length;
for (int i = 0; i < n - 1; i++) {
char minChar = chars[i];
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (chars[j] < minChar) {
minChar = chars[j];
minIndex = j;
}
}
if (minIndex != i) {
char temp = chars[i];
chars[i] = chars[minIndex];
chars[minIndex] = temp;
return new String(chars);
}
}
return s;
}
public static void main(String[] args) {
String s = "acb";
System.out.println(getMinString(s)); // 输出 "abc"
}
}
python算法源码
def get_min_string(s):
chars = list(s)
n = len(chars)
for i in range(n - 1):
min_char = chars[i]
min_index = i
for j in range(i + 1, n):
if chars[j] < min_char:
min_char = chars[j]
min_index = j
if min_index != i:
chars[i], chars[min_index] = chars[min_index], chars[i]
return ''.join(chars)
return s
# 示例输入
s = "acb"
print(get_min_string(s)) # 输出 "abc"
c算法源码
#include <stdio.h>
#include <string.h>
char* getMinString(char* s) {
int n = strlen(s);
for (int i = 0; i < n - 1; i++) {
char minChar = s[i];
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (s[j] < minChar) {
minChar = s[j];
minIndex = j;
}
}
if (minIndex != i) {
char temp = s[i];
s[i] = s[minIndex];
s[minIndex] = temp;
return s;
}
}
return s;
}
int main() {
char s[101];
scanf("%s", s);
printf("%s\n", getMinString(s));
return 0;
}
c++算法源码
#include <iostream>
#include <string>
#include <algorithm>
std::string getMinString(std::string s) {
int n = s.length();
for (int i = 0; i < n - 1; i++) {
char minChar = s[i];
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (s[j] < minChar) {
minChar = s[j];
minIndex = j;
}
}
if (minIndex != i) {
std::swap(s[i], s[minIndex]);
return s;
}
}
return s;
}
int main() {
std::string s;
std::cin >> s;
std::cout << getMinString(s) << std::endl;
return 0;
}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 数据库应用课程设计:航班管理及售票系统(SQL Server+Python)
- 华为OD机试E卷 --工号不够用了怎么办--24年OD统一考试(Java & JS & Python & C & C++)
- Python-PCL安装与应用指南
- Python绘制简易动态圣诞树
- Python的列表基础知识点(超详细流程)
- 华为OD机试E卷 --简易压缩算法--24年OD统一考试(Java & JS & Python & C & C++)
- Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别
- 基于OpenCV和Python的人脸识别系统_django
- 猫头虎分享:最新 TensorFlow 各版本下载地址、对应 Python 版本、编译和运行环境版本号大全
- 华为OD机试E卷 --补种未成活胡杨 --24年OD统一考试(Java & JS & Python & C & C++)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程