/** * 要求能把字符串 如aaaadddecc 压缩成 4a3d1e2c */ public class Test { static char c; static int n = 0; static StringBuffer result = new StringBuffer(); public static void main(String[] args) { StringBuffer s = new StringBuffer("aaaadddecc"); m(s); System.out.println(result); } public static void m(StringBuffer s) { if (s.length() != 0) { if(n == 0) { c = s.charAt(0); } if (s.charAt(0) == c) { n++; } else {
if (n != 0) result.append(n).append(c); c = s.charAt(0); n = 1; } s = s.deleteCharAt(0); m(s); } else if(n!= 0) { result.append(n).append(c); } } } 你改一改。
/**
* 要求能把字符串 如aaaadddecc 压缩成 4a3d1e2c
*/
public class Test { static char c; static int n = 0; static StringBuffer result = new StringBuffer(); public static void main(String[] args) {
StringBuffer s = new StringBuffer("aaaadddecc");
m(s);
System.out.println(result);
} public static void m(StringBuffer s) {
if (s.length() != 0) {
if(n == 0) {
c = s.charAt(0);
}
if (s.charAt(0) == c) {
n++;
} else {
if (n != 0)
result.append(n).append(c);
c = s.charAt(0);
n = 1;
}
s = s.deleteCharAt(0);
m(s);
} else if(n!= 0) {
result.append(n).append(c);
}
}
}
你改一改。
public String getZoomOutString(String s) {
char[] chars=s.toCharArray();
String result="";
int count=0;
char tem=' ';
for(int i=0; i<chars.length; i++) {
if(tem!=chars[i]) {
if(count>0)
result+=count+""+tem;
tem=chars[i];
count=0;
}
count++;
}
result+=count+""+tem;
return result;
}
public static void main(String[] args) {
System.out.println(new ZoomOut().getZoomOutString("aaaabbd"));
}
}
我也写了一个~~~