博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
942. DI String Match(python+cpp)
阅读量:3702 次
发布时间:2019-05-21

本文共 1469 字,大约阅读时间需要 4 分钟。

题目:

Given a string Sthat only contains “I” (increase) or “D” (decrease), let N = S.length.

Return any permutation A of [0, 1, ..., N] such that for all i = 0, ..., N-1:
If S[i] == "I", then A[i] < A[i+1]
If S[i] == "D", then A[i] > A[i+1]
Example 1:

Input: "IDID" Output: [0,4,1,3,2]

Example 2:

Input: "III" Output: [0,1,2,3]

Example 3:

Input: "DDI" Output: [3,2,0,1]

Note:

1 <= S.length <= 10000
S only contains characters "I" or "D".

解释:

注意,output的长度比input的长度多1。
python代码:

class Solution:    def diStringMatch(self, S):        """        :type S: str        :rtype: List[int]        """        init =list(range(len(S)+1))        result=[]        for s in S:            if s=='D':                result.append(init.pop())            else:                result.append(init.pop(0))        return result+init

c++代码:

#include
using namespace std;class Solution {
public: vector
diStringMatch(string S) {
deque
init; for (int i=0;i<=S.size();i++) init.push_back(i); vector
result; for (auto s:S) {
if (s=='D') {
result.push_back(init.back()); init.pop_back(); } else {
result.push_back(init.front()); init.pop_front(); } } result.push_back(init.back()); return result; }};

总结:

学会了使用stl中的deque。

转载地址:http://ywmcn.baihongyu.com/

你可能感兴趣的文章
Session
查看>>
Springboot项目集成jsp
查看>>
Vue的安装
查看>>
Oracle数据库错误Update数据恢复
查看>>
Sql Server数据库查询死锁和解决死锁
查看>>
Mysql实现乐观锁
查看>>
SpringBoot项目自定义Filter过滤器
查看>>
Springboot项目实现自定义拦截器
查看>>
德鲁伊后台监控配置
查看>>
正向代理和反向代理
查看>>
Stream常用方法使用案例
查看>>
Log4j日志的配置文件
查看>>
Slf4j和logback日志组合
查看>>
Mysql的读写分离和主从复制过程概述
查看>>
Java中的synchronized与lock的区别
查看>>
基于Springboot注解形式进行模糊查询
查看>>
通用Sql返回自增长insert后的id
查看>>
SQL返回Map集合或者对象
查看>>
GC垃圾回收机制----GC回收算法(GC机制必会知识点)
查看>>
SpringMVC工作执行流程详解
查看>>