目录

题目

解题

方法一、直接法

方法二、转换法


题目

(原题链接: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之重新排列字符串(五千四百七十二)相关推荐

  1. 第五百七十二、三天 how can I 坚持

    这两天都在搞openfire了啊,整了这么多天,竟然还是两个账号同时登陆问题.醉了,不过也学到不少东西. 不知道为什么.左眼皮一直跳呢..哎.. 考研得抓紧了,考上考不上的,都得努力下.得做题,只看视 ...

  2. 七十二、Python | Leetcode字符串系列(下篇)

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  3. 《汇编语言》王爽(第四版) 第十二章 实验12

    文章目录 前言 一.思路分析 1.安装 2.设置中断向量 3.do0程序 4.测试 5.优化 二.最终成果 1.完整代码 2.效果图 总结 前言 本文是王爽老师<汇编语言>(第四版) 第十 ...

  4. LeetCode 1528. 重新排列字符串

    给你一个字符串 s 和一个 长度相同 的整数数组 indices . 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置. 返回重新排列后的字符串. 输入:s = ...

  5. 什么蓝牙耳机好用又不贵?五款四百元内的耳机推荐

    如何挑选到一款音质好.外形靓丽.价格不高的耳机?今天我整理了一篇五款预算在四百元内的耳机文章,感兴趣的,不妨看一看. 一.NANK南卡lite Pro无线蓝牙耳机(价格:399) 南卡Lite Pro ...

  6. 两千四百道运维题知识整理

    运维题库整理 题干 答案 选项A 选项B 选项C 选项D 1.更改一个文件的权限命令为 B A. attrib B.chmod C. change D. file 2.使用什么命令可以查看Linux的 ...

  7. 不朽凡人 第四百三十五章 交换仙晶

    "啊--"这次就连童晟都看向了莫无忌. 莫无忌决定将事实说给众人听,和大家挖黑石几个月,也结下了深厚的有意,更何况以后大家都是一条战壕上的人. "我在星空中看见了一个监狱 ...

  8. 我生命中的四百八十五天——写给曾经的恋人

    相遇 "你好呀,每一个可能遇见的你~ 最爱拿一只最普通的的手机追寻日光,留住每一幕最美的日出和日落 喜欢静,宁静方可致远:喜欢在自然和在音乐中追寻自我:喜欢以分享记录世界,一心想做一个灵魂比 ...

  9. 如何将12345这样的数字转换成相对应的大写的中文字? 比如:壹万贰千弎百肆十伍。

    public static string Capitalization(double B_SW)  {  long L_SW,L_I=0;  // string [] S_BW_FIG={" ...

最新文章

  1. WPF的二维绘图(二)——几何图形Geometry
  2. SAP 权限对象设置及在程序中的应用
  3. mysql使用 BETWEEN AND 查询
  4. RUNOOB python练习题44
  5. shell脚本报错“^M: bad interpreter”解决方法
  6. matlabeig函数根据什么原理_vue3.0 源码解析二 :响应式原理(下)
  7. leetcode 198 动态规划
  8. xml 标签带有号php,php截取字符串并保留完整xml标签的函数代码
  9. Python中如何求分数化简
  10. SpringBoot2.1.9 多MongoDB配置template
  11. 2021年最新版Git一天入门教程
  12. 企业邮箱怎么写加密邮件,企业邮箱支持吗?
  13. D7写的金税清成助力核心代码
  14. 宝塔linux输入bt,Linux宝塔面板如何挂载硬盘?BT宝塔面板磁盘挂载超简单教程来了!...
  15. 玩转系统|如何Windows Update自动更新
  16. Linux--解决Windows和Ubuntu之间的复制粘贴问题
  17. 爬去豆瓣IP被封,用IP代理解决
  18. JavaScript 所见所得文本编辑器 Froala Editor 4.0.17Crack
  19. 整数表示---整型数据类型
  20. scrapy_redis分布式爬虫爬取亚马逊图书

热门文章

  1. 项目经理如何做好项目数据分析?
  2. Android adb命令行调试技巧
  3. AT3576 Popping Balls
  4. Spring Boot教程(三十五)使用MongoDB数据库(1)
  5. Linux服务器性能评估与优化(一)
  6. 电子音乐的风格简单介绍及DJ推荐
  7. 哈萨克语驾考 科目一四驾驶证学车考试题库
  8. MAC下基于XAMPP套件安装xdebug扩展
  9. 质数/素数筛选c++超简单版写法
  10. 如何从电压范围75V-3500V中选购合适的GDT-陶瓷气体放电管-优恩