领扣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
;
}
}
原题链接点这里
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。