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

米哈游春招算法岗-2023.03.19-第一题-交换字符-简单题

交换字符

Problem Description

米小游拿到了一个仅由小写字母组成的字符串,她准备进行恰好一次操作:交换两个相邻字母,在操作结束后使得字符串的字典序尽可能大。
请你输出最终生成的字符串。

input

一个仅由小写字母组成的字符串,长度不小于 2 ,不超过200000 。

ouput

操作后的字符串。

Sample Input

ba

Sample Output

ab

题目类型、难度、来源

  • 类型:暴力
  • 难度:简单
  • 来源:米哈游春招算法岗-2023.03.19-第一题-交换字符

总体思路:

  • 此题很简单,输入一个字符串,必须要交换一次,使得字符串的字典序尽可能大。
  • ①首先从左到右遍历,如果遇到右边的字符比左边的字符大,马上交换,并break。
  • ②如果第一种情况不存在,说明不能通过交换使字符串字典序变大,此时就要注意避免交换导致字典序减小。就要看字符串中是否有相邻的两个字符相同大小。如果存在,那么可以使用一次交换使字典序不变。
  • ③如果上面两种情况都不存在,就要尽量让字典序减少得尽可能少。此时应该交换字符串最后的两个元素。

AC代码

#include <iostream>
#include <string>
using namespace std;
void swap(char &a, char &b){char t = a;a = b;b = t;
}
int main(){string s;cin >> s;int i, flag = 0;for (i = 0; i < s.size()-1; i++){if (s[i+1] > s[i]){swap(s[i], s[i+1]);break;}else if (s[i+1] == s[i]){flag = 1;}}if (i == s.size()-1){if (flag == 0){swap(s[s.size()-1], s[s.size()-2]);}}cout << s;return 0;
}
  • 更多大厂真题可以看:2023实习、秋招互联网大厂技术岗算法真题-刷题(持续更新)
http://www.lryc.cn/news/42414.html

相关文章:

  • 能把爬虫讲的这么透彻的,没有20年功夫还真不行【0基础也能看懂】
  • springcloud学习总结
  • 2022年亏损超10亿,告别野蛮成长的众安在线急需新“引擎”
  • ChatGPT文心一言逻辑大比拼(一)
  • 【机器学习面试总结】————特征工程
  • 如何将字符串反转?
  • Linux内核IO基础知识与概念
  • paper文献和科研小工具
  • dfs和bfs能解决的问题
  • 静态通讯录,适合初学者的手把手一条龙讲解
  • 【你不知道的 CSS】你写的 CSS 太过冗余,以至于我对它下手了
  • Lesson 8.1 决策树的核心思想与建模流程
  • 【算法】FIFO先来先淘汰算法分析和编码实战
  • 二分查找——我欲修仙(功法篇)
  • Python 多线程
  • JVM笔记(九)选择合适的垃圾收集器
  • 二维图像处理到三维点云处理
  • leetcode 删除有序数组中的重复项
  • JVM学习.03 类加载机制
  • Celery使用:优秀的python异步任务框架
  • 第十四届蓝桥杯三月真题刷题训练——第 19 天
  • 类和对象 - 下
  • 【云原生】Linux基础IO(文件理解与操作)
  • CentOS 7 安装 mysql 8.0 客户端
  • Ubuntu下载、配置、安装和编译opencv
  • 第七讲 贪心
  • 数字藏品的未来及发展趋势
  • 值得记忆的STL常用算法,分分钟摆脱容器调用的困境,以vector为例,其余容器写法类似
  • java如何手动导jar包
  • 怎么防止SQL注入?