当前位置: 首页 > news >正文

Leetcode PHP题解--D10 942. DI String Match

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

942. DI String Match

题目链接

942. DI String Match

题目分析

给定一个只含ID的字符串S,返回一个数组。
这个数组满足以下条件:
S[i]I时,A[i]<A[i+1]。既后面的数字比前面的大。
S[i]D时,A[i]>A[i+1]。既前面的数字比后面的大。

思路

循环遍历给定的字符串,
当遇到I时,直接在数组后面塞当前字母的下标。
当遇到D时,在数组的当前下标位置前插入当前下标。

最终代码

<?php
class Solution {
    function diStringMatch($S) {
        $S = str_split($S);
        $n = range(0,count($S));
        $nums = [array_shift($n)];
        $currentPosition = 0;
        foreach($S as $s){
            if($s == 'I'){
                $nums[] = array_shift($n);
            }
            else{
                $left = ($currentPosition>=0 ?array_slice($nums,0,$currentPosition):[]);
                $right = ($currentPosition<count($nums)?array_slice($nums,$currentPosition):[]);
                $middle = [array_pop($n)];
                $nums = array_merge($left,$middle,$right);
            }
            $currentPosition++;
        }
       return $nums;
    }
}

个人认为这题不是很好描述。有空会尝试描述清楚这个问题。

若觉得本文章对你有用,欢迎用爱发电资助。

转载于:https://my.oschina.net/u/2246923/blog/3025384

相关文章:

  • Java学习笔记之ArrayList基本用法
  • 阿里巴巴2020届校招实习生内推开始啦
  • ionic3 学习记录
  • 【虾说区块链】搞懂P2P网络,再谈区块链!P2P网络概念扫盲帖
  • 三、分别用for、while、do-while、循环语句以及递归方法计算n!,并输出算式。
  • sitemap
  • 【383】defaultdict 相关用法
  • spring cloud(三):Eureka服务的搭建
  • 一个linux 驱动升级的小问题记录
  • Electron Cash钱包如何离线转BCH
  • Redux小结
  • 2017年360最后一道编程题
  • 翻译:CREATE PROCEDURE语句(已提交到MariaDB官方手册)
  • 智能手机拍照进化论:从传感器到算法摄影
  • 如何使用qperf来衡量网络带宽和延迟性能?
  • [译]如何构建服务器端web组件,为何要构建?
  • 345-反转字符串中的元音字母
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Java到底能干嘛?
  • Python进阶细节
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue 配置sass、scss全局变量
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue总结
  • XML已死 ?
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 王永庆:技术创新改变教育未来
  • 消息队列系列二(IOT中消息队列的应用)
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​马来语翻译中文去哪比较好?
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)STL算法之遍历容器
  • (4)logging(日志模块)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (三)Honghu Cloud云架构一定时调度平台
  • (未解决)macOS matplotlib 中文是方框
  • (转)为C# Windows服务添加安装程序
  • .NET CLR Hosting 简介
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET正则基础之——正则委托
  • [1525]字符统计2 (哈希)SDUT
  • [20171113]修改表结构删除列相关问题4.txt
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Android 数据通信] android cmwap接入点
  • [dfs] 图案计数
  • [FT]chatglm2微调
  • [Hive] CTE 通用表达式 WITH关键字