笔试题1道
字符串为大写字母,将字符串中的连续递增的字符子串(字符数量大于等于4)改成缩写形式。
输入:
3
DCBA
ZABCDEFGX
XYZABCDMMMGHIJKLRST
输出:
DCBA
ZA-GX
XYZA-DMMMG-LRST
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
String x = null;
for (int i = 0; i < n; i++) {
x = sc.nextLine();
System.out.println(shortStr(x));
}
}
public static String shortStr(String str) {
StringBuffer buffer = new StringBuffer(str);
int count = 1; //计算连续的个数;
for(int i = buffer.length() - 1; i > 0; i--){
if(buffer.charAt(i-1)+1 == buffer.charAt(i)+0)
count ++;
else{
if(count >= 4){
String chr = buffer.charAt(i) + "-" + buffer.charAt(i+ count - 1);
buffer.replace(i, i+count, chr);
}
count = 1;
}
}
return buffer.toString();
}
}