예처럼 입력 :이자바 RLE 업그레이드 알고리즘
Heeeeeeeeeeeellooooo
출력 될 :
H9e3e2l5o
이것은 인 지금까지 쓴 코드 :
에서public class RLE {
public static String encode(String s) {
if (s == "" || s == null) return "";
StringBuilder sb = new StringBuilder();
int count = 1;
char previous = s.charAt(0);
char current;
for (int i = 1; i < s.length(); i++) {
current = s.charAt(i);
if (current == previous) {
count++;
} else {
if (count == 1) {
sb.append(previous);
} else if (count > 1) {
sb.append(count).append(previous);
count = 1;
}
}
previous = current;
}
return sb.toString();
}
결과 :
'Heeeeeeeeeeeellooooo'-> H12e2l
질문은 무엇을 위해 작동 할 경우 (현재 == 이전) 경우에 증가 로직을 추가? –
귀하의 코드가 예상 결과를 제공하지 않는다는 것을 알고 있습니다. 하지만 내가 이해할 수없는 것 - 당신의 Hello가 H9e3e가되어야한다고 말하는 규칙은 무엇입니까? (첫 번째 예는 12를 9 + 3으로 나눕니다 ...하지만 ... 왜 9 + 3입니까? – GhostCat