当前位置:首页 » 《关于电脑》 » 正文

华为OD机试E卷 --字符串变换最小字符串 --24年OD统一考试(Java & JS & Python & C & C++)

28 人参与  2024年12月27日 10:01  分类 : 《关于电脑》  评论

点击全文阅读


文章目录

题目描述输入描述输出描述用例题目解析JS算法源码java算法源码python算法源码c算法源码c++算法源码

题目描述

给定一个字符串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;}

点击全文阅读


本文链接:http://zhangshiyu.com/post/207570.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 系统:算命后,我修为暴涨全文小说(陈玄阴九)全文免费阅读无弹窗大结局_(系统:算命后,我修为暴涨全文免费阅读全文大结局)最新章节列表_笔趣阁(系统:算命后,我修为暴涨全文) -
  • 一口气看完小说《孟枝意许云澈傅宵》孟枝意许云澈傅宵完整版《孟枝意许云澈傅宵》大结局爆款小说
  • 完整版小说免费阅读我还是没能娶到她贺文倩卓庭陆益阳_我还是没能娶到她贺文倩卓庭陆益阳全集免费小说
  • 《姜茶姜秀秀》(姜茶姜秀秀》已完结完整版全集大结局小说)全文阅读笔趣阁
  • 许南烟付斯越宋欣儿叫什么名字_好看的完结小说风月与你再不相逢全文在线阅读免费阅读
  • 财产捐献福利院后,妻子疯了儿子残了沈念林深顾宇浩然小说全文免费阅读_完结小说推荐财产捐献福利院后,妻子疯了儿子残了沈念林深顾宇浩然免费阅读完整版
  • 朱允熥朱标大结局+外番免费阅读(朱允熥朱标前文+后续小说)全文免费阅读无弹窗大结局_(朱允熥朱标大结局+外番大结局)最新章节列表_(朱允熥朱标前文+后续) -
  • 蒋豪沈书萱(五年梦醒全集阅读)全文免费阅读无弹窗大结局_(蒋豪沈书萱)五年梦醒全集阅读免费阅读全文最新章节列表_笔趣阁(蒋豪沈书萱) -
  • 十年一梦散于海风(沈晚宁贺寻舟)阅读 -
  • 郝建杜晓兰全本章节在线阅读大结局
  • 《绝命盛宴罗成林浩》绝命盛宴全文免费阅读《完整章节》
  • 被当成金丝雀凌虐后,黑道哥哥杀疯了(柳寒烟李小凤)免费阅读 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1