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

前端算法题:3216. 交换后字典序最小的字符串(力扣每日一题)

今日题目为:3216. 交换后字典序最小的字符串

题目详情:

给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。

如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。

示例:

示例 1:

输入: s = "45320"

输出: "43520"

解释:

s[1] == '5's[2] == '3' 都具有相同的奇偶性,交换它们可以得到字典序最小的字符串。

示例 2:

输入: s = "001"

输出: "001"

解释:

无需进行交换,因为 s 已经是字典序最小的。

解题思路:

首先题目描述说了需要交换一次相邻且具有奇偶性的数字,那么s为字符串,需要交换的话就需要遍历且也要方便交换位置,那么就把s转换为数组形式,在进行遍历,首先需要两数进行交换判断,那么就要想到数组的长度是否为偶数,即i+1<arr.length。首先将遍历元素转换为数字形式,在进行判断两个数字奇偶性是否相同,如果相同再进行判断谁在数字表中最先出现,即谁最小,再根据结果进行交换位置,最后将数组转换为字符串形式输出。

具体解决代码:

var getSmallestString = function(s) {const arr = s.split('')for(let i = 0; i<arr.length;i++){if(i+1<arr.length){const num1 = parseInt(s[i],10)const num2 = parseInt(s[i+1],10)if((num1%2) === (num2%2)){if(num1>num2){let temp = arr[i]arr[i] = arr[i+1]arr[i+1] = tempbreak}}}}return arr.join('')
};

http://www.lryc.cn/news/473355.html

相关文章:

  • 29.1 时序监控和日志监控的对比,分析日志监控的核心诉求
  • git仓库分支
  • 多模态机器学习在精准健康中的应用--九五小庞
  • 提升网站速度与性能优化的有效策略与实践
  • MySQL索引从基础到原理,看这一篇就够了
  • 普通高考预报名上传蓝底证件照手机自拍方法详解
  • Webserver(2.3)exec函数族
  • LeetCode Hot100 - 子串篇
  • 【Android】Convenient ADB Commands
  • elementUI 时间控件控制时间选择
  • 什么是x86架构,什么是arm架构
  • c语言水仙花,超简单讲解
  • Flutter 13 网络层框架架构设计,支持dio等框架。
  • Python小白学习教程从入门到入坑------第二十课 闭包修饰器(语法基础)
  • Vue+element-ui实现网页右侧快捷导航栏 Vue实现全局右侧快捷菜单功能组件
  • 如何配置,npm install 是从本地安装依赖
  • Python画图3个小案例之“一起看流星雨”、“爱心跳动”、“烟花绚丽”
  • Knife4j配置 ▎使用 ▎教程 ▎实例
  • 电子电气架构 --- 车载芯片现状
  • Unity 二次元三渲二
  • echart实现地图数据可视化
  • 网关三问:为什么微服务需要网关?什么是微服务网关?网关怎么选型?
  • Mybatis-plus解决兼容oracle批量插入
  • Kaggle竞赛——灾难推文分类(Disaster Tweets)
  • SC2601音频编解码器可pin to pin兼容ES8311
  • 通用AT指令
  • 二进制狼群算法
  • STL——list的介绍和使用
  • 二百七十六、ClickHouse——Hive和ClickHouse非常不同的DWS指标数据SQL语句
  • Elasticsearch Date类型,时间存储相关说明