-
Notifications
You must be signed in to change notification settings - Fork 22
/
Space Replacement.java
executable file
·62 lines (51 loc) · 1.47 KB
/
Space Replacement.java
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
M
tags: String
```
/*
Write a method to replace all spaces in a string with %20.
The string is given in a characters array, you can assume it has enough space for replacement and you are given the true length of the string.
Example
Given "Mr John Smith", length = 13.
The string after replacement should be "Mr%20John%20Smith".
Note
If you are using Java or Python,please use characters array instead of string.
Challenge
Do it in-place.
Tags Expand
String Cracking The Coding Interview
Thoughts:
Overriding the array from the back to front.
This is because as we re-writing the string from the back, stuff at head of the string does not change yet.
This is wonderful:)
*/
public class Solution {
/**
* @param string: An array of Char
* @param length: The true length of the string
* @return: The true length of new string
*/
public int replaceBlank(char[] string, int length) {
if (string == null || string.length == 0) {
return 0;
}
int count = 0;
for (char c : string) {
if (c == ' ') {
count += 2;
}
}
int lastIndex = length + count - 1;
//from back to front:
for (int i = length - 1; i >= 0; i--) {
if (string[i] == ' ') {
string[lastIndex--] = '0';
string[lastIndex--] = '2';
string[lastIndex--] = '%';
} else {
string[lastIndex--] = string[i];
}
}
return length + count;
}
}
```