LintCode: Space Replacement 替換空白

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 https://www.lintcode.com/problem/space-replacement/description

一開始我就試看看只算出替換後的新字串長度,結果Wrong Answer

而且題目要求Do it in-place,分明就是指標的基本題。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {
public:
    /**
     * @param string: An array of Char
     * @param length: The true length of the string
     * @return: The true length of new string
     */
    int replaceBlank(char string[], int length) {
        // Write your code here
        int newStrLen = length;
        const int SHIFT_INC = 2;

        for(int i = 0; i < newStrLen; i++) {
            if( string[i] == ' ') {
                newStrLen += SHIFT_INC;

                // Shifting the remaining character
                for(int j = newStrLen; j >= i; j--)
                    string[j] = string[j-SHIFT_INC];

                string[i] = '%';
                string[i+1] = '2';
                string[i+2] = '0';
            }
        }

        return newStrLen;
    }
};  

沒有留言: