public class Main
{
public static void main(String[] args) {
String str="sgaaaaaaaaaaaa";
char pre='\0';
int count=1;
int i=0;
for(;i<str.length();i++){
if(pre=='\0'){
pre=str.charAt(i);continue;
}
if(pre == str.charAt(i)){
count++;
if(i==str.length()-1){
System.out.print(count+""+pre);
}
}
else {
System.out.print(count+""+pre);
pre=str.charAt(i);
count=0;
--i;
}
}
}
}
使用正则表达式import java.io.BufferedInputStream; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(new BufferedInputStream(System.in)); regex(scanner); } public static void regex(Scanner scanner) { while (scanner.hasNext()) { String s = scanner.nextLine(); Pattern p = Pattern.compile("(.)\\1*"); Matcher m = p.matcher(s); StringBuffer sb = new StringBuffer(); while (m.find()) { m.appendReplacement(sb, m.group(0).length() + m.group(1)); } System.out.println(sb.toString()); } } }
java StringBuilder简单解决,这么简单不用注释了吧,,
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s=sc.next();
StringBuilder s1=new StringBuilder();
int j=0;
for(int i=0;i<s.length()-1;i++){
j++;
if(i==s.length()-2){
if(s.charAt(i)!=s.charAt(i+1)){
s1.append(j+""+s.charAt(i)+""+1+""+s.charAt(i+1));
}
else s1.append((j+1)+""+s.charAt(i));
break;
}
if(s.charAt(i)!=s.charAt(i+1)){
s1.append(j+""+s.charAt(i));
j=0;
// System.out.println(s1);
}
}
if(s.length()==1)s1.append(1+s);
System.out.println(s1);
}
}
}
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); char[] array = s.toCharArray(); StringBuilder sb = new StringBuilder(); int count = 1; if (array.length == 0) { System.out.print("null"); } if (array.length == 1) { System.out.print("" + count + array[0]); } for (int i = 1; i < array.length; i++) { if (array[i] == array[i - 1]) { count++; } else { sb.append(count).append(array[i - 1]); count = 1; } if (i == array.length - 1) { sb.append(count).append(array[i]); } } System.out.print(sb.toString()); } }
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc= new Scanner(System.in); String str = sc.next(); StringBuilder result=new StringBuilder(); char c=' '; char[] ch=str.toCharArray(); //count 为重复计数 int count=1; for(int i=1;i<ch.length;i++){ if(ch[i]==ch[i-1]){ count++; }else{ result.append(count); result.append(ch[i-1]); count=1; } if(i==ch.length-1){ result.append(count); result.append(ch[i]); } } System.out.println(result.toString()); } }为什么通过率是90%?
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * Created by Yuan on 2017/3/1. */ public class SystemInTest { public static void main(String[] args) throws IOException { BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in)); String str=buffer.readLine(); char[] inputs= str.toCharArray(); String strRes=changeInformation(inputs); System.out.println(strRes); } public static String changeInformation(char[] chars){ char lastChar; char currentChar; String result=""; int count=1; for(int i=1;i<chars.length;i++){ currentChar=chars[i]; lastChar=chars[i-1] ; if(currentChar==lastChar){ count++; }else{ result=result+count+lastChar; count=1; } } result=result+count+chars[chars.length-1]; return result; } }