1 .Encode and Decode Strings(271.leetcode)
- 使用 StringBuilder
- method: String - str.indexOf(' char', i ) ; str.substring( i, j) 从 index i 到 j - 1
- StringBuilder - sb.append( a).append(b).append(c) ; a,b,c 可以是 string or char or int
- Integer.valueOf( String) : String -> int
-
解题思路: 有时候 在string manipulation 中 pointer 是很好的解决方法。size +" / " + 内容
public String encode(List<String> strs) {
StringBuilder sb = new StringBuilder();
for( String str : strs){
sb.append(str.length()).append('/').append(str);
}
return sb.toString();
}
public List<String> decode(String s) {
List<String> res = new ArrayList<>();
int index = 0;
while( i < s.length() ){
int slash = s.indexOf('/', i);
int size = Integer.valueOf( s.substring(i, slash));
i = slash + size + 1;
res.add(s.substring( slash + 1, i));
}
return res;
}
网友评论