título Descripción
Dada una cadena clave S, sólo letras, números y '-' (guión). De N '-' cadena dividida en N + 1 grupo. Dado un número K, el nuevo formato de cadena, además del primer paquete, cada paquete contiene K de caracteres, que contiene al menos un primer paquete a un personaje. '-' (guión) aparte, y convertidos en minúsculas a letras mayúsculas con entre dos paquetes.
Teniendo en cuenta los números de cadena no vacía S y K, formateado de acuerdo con las reglas descritas anteriormente.
Ejemplo 1:
Entrada: S = "5F3Z-2e- 9-w", K = 4
de salida: "5F3Z-2E9W"
Explicación: cadena S se divide en dos partes, cada una cuatro caracteres; Note que los dos guiones requiere adicional borrado.
Ejemplo 2:
Entrada: S = "2-5g-3J" , K = 2
de salida: "2-5g-3J"
Explicación: cadena S se divide en tres partes, de acuerdo con las reglas descritas en lo anterior, el carácter de la primera porción puede ser menos a un número dado, el resto son todos los dos personajes.
consejos:
- Longitud de no más de 12.000 S, K es un entero positivo
- S contiene sólo caracteres alfanuméricos (az, AZ, 0-9) y el guión '-'
- S no está vacía
código
public class Solution {
public String licenseKeyFormatting(String S,int K){
StringBuilder sb = new StringBuilder();
int count = 0;
for(int i=S.length()-1;i>=0;i--){
char curr = S.charAt(i);
if(curr == '-'){
continue;
}else{
curr = Character.toUpperCase(curr);
sb.append(curr);
count++;
}
if(count == K){
sb.append('-');
count = 0;
}
}
if(sb.length() == 0){
//假如用例全由'-'构成
return new String();
}
if(sb.charAt(sb.length()-1) == '-'){
//假如最后一个位置为'-'
sb.deleteCharAt(sb.length()-1);
}
String res = sb.reverse().toString();
return res;
}
}
rendimiento