【简单】1370. 上升下降字符串

Java LeetCode每日一题-从易到难带你领略算法的魅力(一):上升下降字符串 上升下降字符串1.题目要求2.题目示例3.提示4.解题4.1 解题思路4.2 业务代码4.3 运行结果5.优化5.1 优化思路5.2 优化业务代码5.3 优化结果6.总结 1.题目要求 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面 阅读详情

【题目】
给你一个字符串 s ,请你根据下面的算法重新构造字符串:
1、从 s 中选出 最小 的字符,将它 接在 结果字符串的后面
2、从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。
3、
来源:leetcode
链接:https://leetcode-cn.com/problems/increasing-decreasing-string/
【示例1】
输入:s = “aaaabbbbcccc”
输出:“abccbaabccba”
解释:第一轮的步骤 1,2,3 后,结果字符串为 result = “abc”
第一轮的步骤 4,5,6 后,结果字符串为 result = “abccba”
第一轮结束,现在 s = “aabbcc” ,我们再次回到步骤 1
第二轮的步骤 1,2,3 后,结果字符串为 result = “abccbaabc”
第二轮的步骤 4,5,6 后,结果字符串为 result = “abccbaabccba”
【示例2】
输入:s = “rat”
输出:“art”
解释:单词 “rat” 在上述算法重排序以后变成 “art”
【示例3】
输入:s = “leetcode”
输出:“cdelotee”
【示例4】
输入:s = “ggggggg”
输出:“ggggggg”
【示例5】
输入:s = “spo”
输出:“ops”
【提示】
1 <= s.length <= 500
s 只包含小写英文字母。
【思路】
1、先对字符串进行排序,排成从小到大的顺序
2、设置一个visit数组,来判断该字符串的每一位被访问(这里的访问并不是字面意上的访问,而是)情况,如果visit[i]=0则表明该位没有被访问,否则该位被访问。
3、设置计数器cnt=0,用来记录被访问的字符的个数,设置maxlen为字符串的长度
4、函数主体由一个while循环组成,当cnt!=maxlen的时候一直执行循环体,直到cnt==maxlen为止退出循环
5、循环体由两个部分组成,两个for循环,一个从左到右,一个从右到左,正好满足题目要求。
【代码】

class Solution {
public:
    int visit[500]={0};
    string str[26]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o"
    ,"p","q","r","s","t","u","v","w","x","y","z"};
    string sortString(string s) {
        char pre=' ';
        string rs="";
        int cnt=0,maxlen=s.size();
        sort(s.begin(),s.end());
        while(cnt!=maxlen){
            pre=' ';
            for(int i=0;i<maxlen;i++)//从左到右
                if(visit[i]==0&&s[i]!=pre){
                    pre=s[i];
                    visit[i]=1;
                    rs+=str[s[i]-'a'];
                    cnt++;
                }
            if(cnt==maxlen)            
                break;
            pre=' ';
            for(int i=maxlen-1;i>=0;i--)//从右到左
                if(visit[i]==0&&s[i]!=pre){
                    pre=s[i];
                    visit[i]=1;
                    rs+=str[s[i]-'a'];
                    cnt++;
                }
        }
        return rs;
    }
};
DOS2.20 经典DOS系统<br>有爱好的人可下 立即下载

相关推荐

NXP S32K3 Safety软件生态全解析:RTD、SPD、SAF、SCST到底怎么选?

本文深入解析NXP S32K3系列MCU的安全软件生态,详细对比RTD、SPD、SAF和SCST四大组件的功能定位与选型策略。针对不同ASIL等级需求,提供从架构设计到工程实践的完整解决方案,帮助开发者高效实现功能安全认证,优化汽车电子系统的安全性与可靠性。

weixin_42524226的博客 324

LeetCode--1370--上升下降字符串

题目描述: 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。 重复步骤 1 到 6 ,直

猩猩是个好程序员的博客 306

ABB机器人绝对精度实战:从焊接路径优化到TCP控制(附配置步骤)

本文深入探讨了ABB机器人绝对精度在焊接路径优化中的核心价值。通过对比重复定位精度,阐明绝对精度如何补偿机械误差,确保TCP在整个运动路径上的轨迹精度。文章提供了从示教器激活绝对精度功能的详细配置步骤,并分享了针对焊接抖动和实现0.2mm路径精度的进阶调优技巧,包括TCP标定、伺服参数优化与系统维护。

weixin_29053073的博客 352

1370. 上升下降字符串 - 【简单】

【题目描述】:给你一个字符串s,请你根据下面的算法重新构造字符串: 从s中选出 最小 的字符,将它 接在 结果字符串的后面。 从s剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从s中选择字符。 从s中选出 最大 的字符,将它 接在 结果字符串的后面。 从s剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从s中选择字符。 重复步骤 1 到 6 ,直到s中所有字符都已经被

晓野豬 441

Java黑皮书课后题第5章:*5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生

*5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生名字、次高分的学生名字题目题目概述next()读取一个字符与nextLine()读取一行破题代码 题目 题目概述 *5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生名字、次高分的学生名字 使用Scanner类的next()方法而不是nextLine()方法来读取名字 next()读取一个字符与nextLine()读取一行 举个例子理

weixin_46356698的博客 2155

最优化方法 25:PDHG

前面的章节要么从原始问题出发,要么从对偶问题出发,通过求解近似点或者一个子优化问题进行迭代,而且推导过程中我们发现根据问题的参数特征,比如矩阵 AAA 是瘦高型的还是矮胖型的,采用对偶和原始问题的复杂度会不一样,可以选择一个更简单的。而这一节,我们将要从原始对偶问题出发来优化,什么是原始对偶问题呢?就是原始优化变量和对偶优化变量(原始函数和共轭函数)混合在一块,看下面的原理就知道了。 1. 原始对偶问题 现在考虑原始优化问题,其中 f,gf,gf,g 为闭凸函数 min⁡f(x)+g(Ax) \min \q

Glooow的博客 4604

77.上升下降字符串

文章目录一、题目描述二、解题思路2.1 题目解读2.2 解题步骤三、代码演示 一、题目描述 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后

Quiet_han的博客 433

平衡小车动力学建模

两轮自平衡小车由车体和双轮两部分组成,可以看成一个移动的倒立摆,分别对车轮和车体进行力学分析,建立动力学模型,最后,通过对两者的分析给出系统的状态空间表达式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjiPEUVJ-1679470559950)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230322110521545.png)]

qq_23096319的博客 9056

Leetcode 1370:上升下降字符串(超详细的解法!!!)

给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将...

coordinate的博客 1165

避坑指南:英飞凌TC3XX的MCMCAN初始化常见错误及解决方法

本文针对英飞凌TC3XX系列MCU的MCMCAN模块初始化难题,深入剖析了寄存器配置时序、总线监控模式误用、中断映射错误及Message RAM地址冲突四大常见陷阱。通过实战代码示例和诊断流程,提供了清晰的避坑指南和解决方案,帮助嵌入式开发者高效解决CAN FD通信故障,确保汽车电子与工业控制项目的稳定运行。

weixin_29193259的博客 246

量化投资从0开始系列 ---- 15. 郑商所日统计数据

前面已经提取了其它期货交易所的数据,最后还剩下郑商所。相比而言,郑商所的数据获取比其它几个交易所更麻烦一点。因为郑商所的系统接口有两个,在2015年11月11日前后发生了切换,这个日期之前是老系统的api接口,这个日期之后是一个新的api接口。 具体的地址在哪里,还是依靠在浏览器中按F12来确定,最后发现的地址是: if trade_date > '20151111': czce_url = f'http://www.czce.com.cn/cn/DFSS

kengxie的博客 2116

【LeetCode每日一题】[简单]1370. 上升下降字符串

【LeetCode每日一题】[简单]1370. 上升下降字符串 1370. 上升下降字符串 1370. 上升下降字符串 算法思想:字符串 题目: java代码 计数;统计26个字母出现次数; 正向遍历,反向遍历,拼凑新字符串; class Solution { public String sortString(String s) { int[] m = new int[26];//计数 for (char ch : s.toCharArray()) {//统计每个字母出现频率 m

qq_39457586的博客 167

YOLO26涨点改进 | 细节涨点篇 | 源自SCI一区 | YOLO26引入HWD小波下采样模块,而不会显著增加计算开销,(适合小目标分割任务、小目标检测任务)

本文提出了一种基于Haar小波变换的下采样模块HWD,用于改进YOLO26目标检测性能。HWD模块通过小波变换降低特征图分辨率,同时将空间信息编码到通道维度,有效保留了关键信息。相比传统下采样方法,HWD能显著减少信息不确定性,提升小目标检测精度。实验表明,该模块可无缝集成到CNN架构中,不增加计算开销。文章详细介绍了HWD的实现原理、代码结构以及在YOLO26中的集成方法,并提供了两种改进版yaml配置文件。该创新模块已在多种数据集上验证有效,特别适合语义分割和目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 405

【算法】简单的桶计数的应用——leetcode 1370.上升下降字符串

桶计数 缘由 今天写leetcode上的每日一题 1370.上身下降字符串 这是一道很简单的题目,但是自己一开始没有想到用桶计数的方法来做,说明自己对桶计数这个方法还不是特别的熟悉,所以在这里做个记录,让自己以后遇到类似的问题可以更快地找到合适的方法。 题目 题目是这样描述的 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2

weixin_45781252的博客 1307

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

简单题--1370. 上升下降字符串

力扣刷题 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。 重复步骤 1 到 6 ,直到

weixin_45209397的博客 313

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Python】【难度:简单】Leetcode 1370. 上升下降字符串

给你一个字符串s,请你根据下面的算法重新构造字符串: 从 s中选出 最小的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。 重复步骤 2 ,直到你没法从 s中选择字符。 从 s中选出 最大的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它 接在结果字符串后面。 重复步骤 5,直到你没法从 s中选择字符。 重复步骤 1 到 6 ,直到 s中...

thomashhs12的博客 491

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【字符串】1370. 上升下降字符串(简单)

【题目】 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。 重复步骤 1 到 6 ,直到

... 110

【LeetCode】C++ :简单题 - 字符串 1370. 上升下降字符串

1370. 上升下降字符串 难度简单83 给你一个字符串s,请你根据下面的算法重新构造字符串: 从s中选出最小的字符,将它接在结果字符串的后面。 从s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它接在结果字符串后面。 重复步骤 2 ,直到你没法从s中选择字符。 从s中选出最大的字符,将它接在结果字符串的后面。 从s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它接在结果字符串后面。 重复步骤 5,直到你没法...

weixin_44566432的博客 162

LeetCode简单题1370.上升下降字符串

LeetCode简单题1370.上升下降字符串

Leung_Chiu_Wai的博客 88

1370. 上升下降字符串(简单)

两个循环,借鉴题解,改进,大体思路一致 Anything is possible

Enter 94

LeetCode--2周速刷--简单题--1370. 上升下降字符串

题目描述 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。 重复步骤 1 到 6 ,直

Mmyine的博客 189

【Leetcode每日一题】 1370. 上升下降字符串(水题)

Leetcode 每日一题 题目链接: 1370. 上升下降字符串 难度: 简单 解题思路: 将字符串转化成字典,并对key关键字进行排序。然后从小到大,从大到小进行拼接。 题解: class Solution: def sortString(self, s: str) -> str: # 记录每个字符出现的次数 support = {} for example in s: support[example] = support.

YancyKahn 426

算法leetcode|1370. 上升下降字符串(rust很好用)

给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中

二当家的白帽子 500

LeetCode 1370. 上升下降字符串 | Python

思路:计数(桶)

"大梦三千秋的博客 413

LeetCode第1370题上升下降字符串

1370. 上升下降字符串 题目: 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。

qq_41967623的博客 161

1370. 上升下降字符串 (桶排序)

LeetCode: 1370. 上升下降字符串 同上题: 1370. 上升下降字符串 (暴力) 这种解法明显提升效率 AC Code public String sortString(String s) { // 26个 桶 int[] bucket = new int[26]; char[] cs = new char[s.length()]; int index = 0; for (int i = 0;

lankerens 458
上一篇: 【简单】657. 机器人能否返回原点
下一篇: 【简单】面试题25. 合并两个排序的链表
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值