class Solution {
public String longestCommonPrefix(String[] strs) {
String ans=new String();
if(strs.length==0)
return ans;
if(strs.length==1)
return strs[0];
for(int i=0;i<strs[0].length();i++){
int flag=1;
char ch=strs[0].charAt(i);
for(String s:strs){
if(i>=s.length())
flag=0;
else if(s.charAt(i)!=ch)
flag=0;
}
if(flag==1)
ans+=ch;
else
break;
}
return ans;
}
}
class Solution {
public int compress(char[] chars) {
int index=0;
int len=0;
while(index<chars.length){
int front=index;//index和front组成双指针,index表示枚举,front用于找下一个不重复的元素
int count =0;
while(front<chars.length&&chars[front]==chars[index]){//找下一个不重复的元素并且记录当前元素的重复次数
front++;
count++;
}
if(count==1){//如果没有重复则直接加入压缩后的字符串,这里是原地压缩。直接覆盖原来字符数组。
len++;
chars[len-1]=chars[index];
}
else{
int temp1=1;//表示count的位数
int temp2=count;
while(temp2/10!=0){//如果重复了就先算出重复次数count是几位数
temp1++;
temp2=temp2/10;
}
chars[len]=chars[index];
len++;
String str=""+count;
for(int i=0;i<str.length();i++){//将重复的次数添加到压缩数组中
chars[len]=str.charAt(i);
len++;
}
}
index=front;
}
return len;
}
}