Skip to content

Commit c47e9dc

Browse files
authored
Merge pull request gzc426#6 from symkmk/symkmk-patch-3
Create 妮可.md
2 parents 1d8a230 + 1b1958c commit c47e9dc

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

2018.11.29-leetcode443/妮可.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
```java
2+
package sy181203;
3+
4+
import java.util.ArrayList;
5+
import java.util.Arrays;
6+
7+
public class leetcode_443压缩字符串
8+
{
9+
10+
public static void main(String[] args)
11+
{
12+
char[] chars = {'a','b','b','b','c','c','b','b','b','b','b','b','b','b','b','b','b','b'};
13+
System.out.println(Arrays.toString(chars));
14+
15+
System.out.println(compress(chars));
16+
17+
}
18+
19+
public static int compress(char[] chars)
20+
{
21+
if(chars.length==0)
22+
return 0;
23+
int m=0,i=0,j;
24+
while(i<chars.length)//外层循环控制总次数
25+
{
26+
j=i;
27+
chars[m++]=chars[i];
28+
int k=0;//统计重复字母数
29+
while(j<chars.length && chars[i]==chars[j])//内层循环判断是不是同一个字母
30+
{
31+
k++;
32+
j++;
33+
}
34+
StringBuilder sb=new StringBuilder();
35+
if(k!=1)//k=1不用再加数字
36+
{
37+
while(k!=0)//除来减小,到0出循环
38+
{
39+
System.out.println("k%10 "+(k%10));
40+
sb.append((char)(k%10+48));
41+
k/=10;
42+
}
43+
}
44+
System.out.println("sb ==="+sb.toString());
45+
sb.reverse();//
46+
System.out.println("sbre ==="+sb.toString());
47+
for(char c:sb.toString().toCharArray())
48+
49+
{
50+
System.out.println("c="+c);
51+
chars[m++]=c;
52+
}
53+
i=j;//置位
54+
}
55+
System.out.println(Arrays.toString(chars));
56+
return m;
57+
}
58+
59+
}
60+
```

0 commit comments

Comments
 (0)