1.題目描述:給定只含 「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]
示例 2:
輸入:「iii」
輸出:[0,1,2,3]
示例 3:
輸入:「ddi」
輸出:[3,2,0,1]
2.分析:』『i』』,』『d』』 可以看做對應的數的增減趨勢,』『i』'表示下乙個數會增,則我們把最小的數安排好,則下乙個數必增,若還是"i",則把倒數第二小的數安排上,下乙個數必增,符合"i"的趨勢,以此類推,「d"同理。最後"i」,"j"指向同乙個數。
3.**如下:
class solution {
public int distringmatch(string s) {
int a = new int [s.length()+1];
int i=0;
int j=s.length();
for(int k=0;k後記:這道題自己做不出來,是看了別人的**後自己加以分析的。
增減字串匹配
給定只含 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 示例 2 輸出 i...
148 增減字串匹配
題目描述 給定只含 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 示例 2...
942 增減字串匹配
給定只含 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 示例 2 輸出 i...