【算法题】字符串变换最小字符串 * (js)

在这里插入图片描述
在这里插入图片描述

思路:
将字符按字典排序得到minStr,对比原str
如果 minStr === str 则本身就是最小字符串
否则从前往后遍历str,让str[i]和minStr[i]对比,如果不同则替换 str[i]为minStr[i],并且这个minStr[i]这个字符要从str中寻找,
如果存在多个该字符则找最后一个字符与他替换才能成为最小字符串。

const str = "bcdefa";
function solution(str) {const minStr = str.split("").sort().join("");if (minStr === str) return str;for (let i = 0; i < str.length; i++) {if (str[i] !== minStr[i]) {const char = minStr[i];const changeIndex = str.lastIndexOf(char);const arry = str.split("");[arry[i], arry[changeIndex]] = [arry[changeIndex], arry[i]];return arry.join("");}}
}
console.log(solution(str));
/* abcdef  =>  abcdef bcdefa => acdefa*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抓取真实浏览器设备指纹fingerprint写入cookie方案

一个关于抓取真实浏览器设备指纹写入cookie方案&#xff0c;用户访问页面获取到用户设备生成指纹id&#xff0c;通过js把指纹存入cookie&#xff0c;然后用php进行获取cookie存的指纹值到后台。 用途&#xff1a;追踪用户设备&#xff0c;防恶意注册&#xff0c;防恶意采集 浏…

C语言-每日刷题练习

[蓝桥杯 2013 省 B] 翻硬币 题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面&#xff0c;用 o 表示反面&#xff08;是小写字母&#xff0c;不是零&#xff09;&#xff0c;比如可能情形是 **oo***oooo&#xff0c;如果…

第9讲、集成服务(增强用户使用体验感):

1、插入集成服务安装盘 操作系统关闭&#xff1a; 1&#xff09;当物理机关机时&#xff0c;Hyper-V上的虚拟机将优先于物理机装机&#xff0c;如果此时虚拟机还有应用 正在运行&#xff0c;那么会先保存这些应用至磁盘&#xff0c;然后再有序…

【Hadoop_03】HDFS概述与Shell操作

1、集群配置&#xff08;1&#xff09;集群启动/停止方式总结&#xff08;2&#xff09;编写Hadoop集群常用脚本&#xff08;3&#xff09;常考面试题【1】常用端口号【2】常用配置-文件 2、HDFS概述&#xff08;1&#xff09;HDFS产出背景及定义&#xff08;2&#xff09;HDFS…

K8S学习指南(9)-k8s核心对象init pod

文章目录 引言什么是Init容器&#xff1f;Init容器的使用场景1. 数据初始化2. 网络设置3. 等待依赖服务 Init容器的生命周期1. **Pending**2. **Running**3. **Terminated** Init容器的示例Init容器的高级用法结论 引言 Kubernetes&#xff08;简称K8s&#xff09;是一个强大的…

qmap类

QMap是一个关联数组&#xff0c;它将键&#xff08;key&#xff09;与值&#xff08;value&#xff09;相关联。QMap类提供了一系列方法来操作和查询其中存储的数据。下面是一些常见的QMap方法及其示例代码&#xff1a; insert()方法用于将键值对插入到QMap中。如果键已经存在&…

软件工程考试复习

第一章、软件工程概述 &#x1f31f;软件程序数据文档&#xff08;考点&#xff09; &#x1f31f;计算机程序及其说明程序的各种文档称为 &#xff08; 文件 &#xff09; 。计算任务的处理对象和处理规则的描述称为 &#xff08; 程序 &#xff09;。有关计算机程序功能、…

SQL注入概述

预计更新1.SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…

智能优化算法应用:基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.灰狼算法4.实验参数设定5.算法结果6.参考文献7.MA…

unity学习笔记19

一、角色动画的使用练习 从资源商店导入的动画资源&#xff08;Character Pack: Free Sample&#xff09;中将资源中的角色创建在场景里&#xff0c;现在场景里存在的角色并没有任何动画。 在资源中找到Animations文件夹&#xff0c;在这个文件有很多模型文件&#xff08;.FBX…

自定义带有构建标记的Go二进制文件

引言 在Go中,构建标签或构建约束,是添加到代码片段中的标识符,用于确定在build过程中何时应将文件包含在包中。这允许您从相同的源代码构建不同版本的Go应用程序,并以快速和有组织的方式在它们之间切换。许多开发人员使用构建标记来改进构建跨平台兼容应用程序的工作流程,…

算能 MilkV Duo开发板实战——opencv-mobile (迷你版opencv库)的移植和应用

前言 OpenCV是一种开源的计算机视觉和机器学习软件库&#xff0c;旨在提供一组通用的计算机视觉工具。它用于图像处理、目标识别、人脸识别、机器学习等领域&#xff0c;广泛应用于计算机视觉任务。 OpenCV-Mobile是OpenCV库的轻量版本&#xff0c;专为移动平台&#xff08;A…

学习 NVIDIA Omniverse 的最基础概念

无用的前言 近两年关于 Omniverse 的宣传一直很多&#xff0c;可我一直没去了解&#xff0c;连它是个啥都不知道。最近正好有契机需要了解它&#xff0c;于是我今天抽时间看了些它的官方介绍&#xff0c;并按照自己的理解梳理在这里。 官方资料索引 Omniverse 官网主页&…

Nacos配置管理-微服务配置拉取

yaml已配置内容 目录 一、配置获取步骤 二、统一配置管理步骤 三、Nacos管理配置的步骤总结 一、配置获取步骤 二、统一配置管理步骤 1、引入Nacos的配置管理客户端依赖: <!--nacos配置管理依赖--> <dependency> <groupId>com.alibaba.cloud&l…

CRM是什么?企业为什么需要CRM?

CRM是什么 CRM的全称是Customer Relationship Management&#xff0c;即客户关系管理&#xff0c;是一种企业与现有客户及潜在客户之间关系互动的管理系统&#xff0c;是企业“以客户为中心”价值观的核心体现之一。 客户是一家企业最宝贵的资源。CRM系统最关键的就是能够帮助…

复亚智能无人机机场适配最新大疆无人机

无人机已经在各个领域得到广泛应用&#xff0c;但由于操作难度、起降场地等问题&#xff0c;其应用范围和效率受到了一定限制。随着无人机机场研发技术的成熟&#xff0c;许多实际操作中的难题得以解决&#xff0c;使得无人机应用变得更加高效。接下来&#xff0c;我们将深入了…

修改代码后idea如何将代码提交到公司git上

1、需要先更新最新的代码到本地&#xff1b;&#xff08;此步骤防止&#xff0c;公司其他人在此期间已经提交了最新代码&#xff0c;但是自己本地项目没有拉取最新代码&#xff0c;导致最后版本冲突&#xff09; 打开idea---》鼠标项目项目名上右击---》选择Git---》选择pull-…

MySQL数据库,创建和管理表

创建数据库&#xff1a; 方式一&#xff1a;创建数据库 CREATE DATABASE 数据库名&#xff1b;&#xff08;使用的是默认的字符集&#xff09; 方式二&#xff1a;创建数据库并指定字符集 CREATE DATABASE 数据库名 CHARACTER SET 字符集&#xff1b; 方式三&#xff1a;判断数…

边车模式的介绍

边车模式也叫搭档模式。 边车模式的设计思想是将控制和逻辑分离&#xff0c;常用于分布式架构中的逻辑和控制分离设计。边车来实现这些与业务逻辑没有关系的控制功能。 以边车的方式&#xff0c;对应用服务没有侵入性&#xff0c;并且不用受到应用服务的语言与技术的限制&…

每天五分钟计算机视觉:使用1*1卷积层来改变输入层的通道数量

本文重点 在卷积神经网络中有很多重要的卷积核&#xff0c;比如1*1的卷积核&#xff0c;3*3的卷积核&#xff0c;本文将讲解1*1的卷积核的使用&#xff0c;它在卷积神经网络中具有重要的地位。由于1*1的卷积核使用了最小的窗口&#xff0c;那么1*1的卷积核就失去了卷积层可以识…