领扣LintCode算法问题答案-1700. 增减字符串匹配

    科技2022-07-13  119

    领扣LintCode算法问题答案-1700. 增减字符串匹配

    目录

    1700. 增减字符串匹配描述样例 1:样例 2: 题解鸣谢

    1700. 增减字符串匹配

    描述

    给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。

    返回[0, 1, …, N] 的任意排列 A 使得对于所有i = 0, …, N-1,都有:

    如果 S[i] == “I”,那么 A[i] < A[i+1]如果 S[i] == “D”,那么 A[i] > A[i+1] 1 <= S.length <= 1000S 只包含字符 “I” 或 “D”

    样例 1:

    输入:"IDID" 输出:[0,4,1,3,2] 解释:按照"IDID",0<4,4>1,1<3,3>2。

    样例 2:

    输入:"III" 输出:[0,1,2,3] 解释:按照"III",0<1,1<2,2<3。

    题解

    public class Solution { public int[] diStringMatch(String S) { int min = 0; int max = S.length(); int[] ret = new int[S.length() + 1]; for (int i = 0; i < S.length(); i++) { char c = S.charAt(i); switch (c) { case 'I': ret[i] = min++; break; case 'D': ret[i] = max--; break; } } ret[S.length()] = min; return ret; } }

    原题链接点这里

    鸣谢

    非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

    Processed: 0.011, SQL: 8