題目鏈接
這是一道Easy題目
題目給定只含 “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:
輸出:“IDID”
輸出:[0,4,1,3,2]
思路: 找找規律會發現,第一個出現I 就寫最小的數,第二個出現I就寫倒數第二小的數,第一個出現D 就寫最大的數,第二個出現D就寫第二大的數,以此類推。
class Solution {public int[] diStringMatch(String S) {int len = S.length();int ans[] = new int[len + 1];int max = len;int min = 0;for(int i = 0; i < len; i++){if(S.charAt(i) == 'I'){ans[i] = min;min++;}else{ans[i] = max;max--;}}ans[len] = max;return ans;}
}
leetcode15。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态