LeetCode之重新排列字符串(五千四百七十二)
目录
题目
解题
方法一、直接法
方法二、转换法
题目
(原题链接:https://leetcode-cn.com/problems/shuffle-string/)
给你一个字符串 s 和一个 长度相同 的整数数组 indices 。
请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。
返回重新排列后的字符串。
示例 1:
输入:s = "codeleet", indices = [4,5,6,7,0,2,1,3]
输出:"leetcode"
解释:如图所示,"codeleet" 重新排列后变为 "leetcode" 。
示例 2:
输入:s = "abc", indices = [0,1,2] 输出:"abc" 解释:重新排列后,每个字符都还留在原来的位置上。
示例 3:
输入:s = "aiohn",
indices
= [3,1,4,2,0]输出:"nihao"
示例 4:
输入:s = "aaiougrt",
indices
= [4,0,2,6,7,3,1,5]输出:"arigatou"
示例 5:
输入:s = "art",
indices
= [1,0,2]输出:"rat"
提示:
s.length == indices.length == n。
1 <= n <= 100。
s 仅包含小写英文字母。
0 <= indices[i] < n。
indices 的所有的值都是唯一的(也就是说,indices 是整数 0 到 n - 1 形成的一组排列)。
解题
方法一、直接法
分析:直接法是巧妙利用了string类型的构造函数,首先声明一个含有n个元素的初始字符串,然后根据所提供的字符串s和向量数组indices,对初始字符串进行修改。具体操作,我来看代码。
代码: (C++)
class Solution {
public:string restoreString(string s, vector<int>& indices) {int n = s.size();string res(n, 'n');for(int i = 0; i < n; ++i){res[indices[i]] = s[i];}return res;}
};
时间复杂度:O(n)。
空间复杂度:O(n)。
执行结果:
方法二、转换法
分析:根据提供的字符串s和向量数组indices,可以非常容易的得到满足条件的向量数组vec。然后我们将向量数组vec转换成string字符串返回就行了。直接看代码吧。
代码:(C++)
class Solution {
public:string restoreString(string s, vector<int>& indices) {vector<char> vec;for (int i = 0; i < indices.size(); i ++) {vec[indices[i]] = s[i]; }std::string str(vec.begin(), vec.end());return str;}
};
时间复杂度:O(n)。
空间复杂度:O(n)。
LeetCode之重新排列字符串(五千四百七十二)相关推荐
- 第五百七十二、三天 how can I 坚持
这两天都在搞openfire了啊,整了这么多天,竟然还是两个账号同时登陆问题.醉了,不过也学到不少东西. 不知道为什么.左眼皮一直跳呢..哎.. 考研得抓紧了,考上考不上的,都得努力下.得做题,只看视 ...
- 七十二、Python | Leetcode字符串系列(下篇)
@Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 《汇编语言》王爽(第四版) 第十二章 实验12
文章目录 前言 一.思路分析 1.安装 2.设置中断向量 3.do0程序 4.测试 5.优化 二.最终成果 1.完整代码 2.效果图 总结 前言 本文是王爽老师<汇编语言>(第四版) 第十 ...
- LeetCode 1528. 重新排列字符串
给你一个字符串 s 和一个 长度相同 的整数数组 indices . 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置. 返回重新排列后的字符串. 输入:s = ...
- 什么蓝牙耳机好用又不贵?五款四百元内的耳机推荐
如何挑选到一款音质好.外形靓丽.价格不高的耳机?今天我整理了一篇五款预算在四百元内的耳机文章,感兴趣的,不妨看一看. 一.NANK南卡lite Pro无线蓝牙耳机(价格:399) 南卡Lite Pro ...
- 两千四百道运维题知识整理
运维题库整理 题干 答案 选项A 选项B 选项C 选项D 1.更改一个文件的权限命令为 B A. attrib B.chmod C. change D. file 2.使用什么命令可以查看Linux的 ...
- 不朽凡人 第四百三十五章 交换仙晶
"啊--"这次就连童晟都看向了莫无忌. 莫无忌决定将事实说给众人听,和大家挖黑石几个月,也结下了深厚的有意,更何况以后大家都是一条战壕上的人. "我在星空中看见了一个监狱 ...
- 我生命中的四百八十五天——写给曾经的恋人
相遇 "你好呀,每一个可能遇见的你~ 最爱拿一只最普通的的手机追寻日光,留住每一幕最美的日出和日落 喜欢静,宁静方可致远:喜欢在自然和在音乐中追寻自我:喜欢以分享记录世界,一心想做一个灵魂比 ...
- 如何将12345这样的数字转换成相对应的大写的中文字? 比如:壹万贰千弎百肆十伍。
public static string Capitalization(double B_SW) { long L_SW,L_I=0; // string [] S_BW_FIG={" ...
最新文章
- WPF的二维绘图(二)——几何图形Geometry
- SAP 权限对象设置及在程序中的应用
- mysql使用 BETWEEN AND 查询
- RUNOOB python练习题44
- shell脚本报错“^M: bad interpreter”解决方法
- matlabeig函数根据什么原理_vue3.0 源码解析二 :响应式原理(下)
- leetcode 198 动态规划
- xml 标签带有号php,php截取字符串并保留完整xml标签的函数代码
- Python中如何求分数化简
- SpringBoot2.1.9 多MongoDB配置template
- 2021年最新版Git一天入门教程
- 企业邮箱怎么写加密邮件,企业邮箱支持吗?
- D7写的金税清成助力核心代码
- 宝塔linux输入bt,Linux宝塔面板如何挂载硬盘?BT宝塔面板磁盘挂载超简单教程来了!...
- 玩转系统|如何Windows Update自动更新
- Linux--解决Windows和Ubuntu之间的复制粘贴问题
- 爬去豆瓣IP被封,用IP代理解决
- JavaScript 所见所得文本编辑器 Froala Editor 4.0.17Crack
- 整数表示---整型数据类型
- scrapy_redis分布式爬虫爬取亚马逊图书