牛客網|基本文字列圧縮
1340 ワード
タイトルの説明
文字が繰り返される回数を利用して、基本的な文字列圧縮機能を実現する方法を作成します.たとえば、文字列「aabcccccaaa」は圧縮されて「a 2 b 1 c 5 a 3」になります.圧縮された文字列が短くならない場合は、元の文字列を返します.
1つのstring iniStringが圧縮される列(長さが3000以下)であることを指定し、列内の文字が大文字と小文字の英字からなることを保証し、stringを返し、求めた圧縮後または変化しない列である.
テストサンプル
文字が繰り返される回数を利用して、基本的な文字列圧縮機能を実現する方法を作成します.たとえば、文字列「aabcccccaaa」は圧縮されて「a 2 b 1 c 5 a 3」になります.圧縮された文字列が短くならない場合は、元の文字列を返します.
1つのstring iniStringが圧縮される列(長さが3000以下)であることを指定し、列内の文字が大文字と小文字の英字からなることを保証し、stringを返し、求めた圧縮後または変化しない列である.
テストサンプル
"aabcccccaaa"
:"a2b1c5a3"
"welcometonowcoderrrrr"
:"welcometonowcoderrrrr"
import java.util.*;
public class Zipper {
public String zipString(String iniString) {
// write code here
if(iniString==null||iniString.trim().length()==0) return "";
char p = iniString.charAt(0);
StringBuilder stringBuilder = new StringBuilder("");
int count = 1;
for (int i=1;i<iniString.length();i++)
{
if(p==iniString.charAt(i))
count++;
else
{
stringBuilder.append(p+""+count);//
p = iniString.charAt(i);
count=1;
}
}
stringBuilder.append(p+""+count);
if(stringBuilder.length()>iniString.length())
return iniString;
else
return stringBuilder.toString();
}
}