482. Formato de clave

licencia de clave de formato

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:

  1. Longitud de no más de 12.000 S, K es un entero positivo
  2. S contiene sólo caracteres alfanuméricos (az, AZ, 0-9) y el guión '-'
  3. 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
rendimiento

Publicado 75 artículos originales · ganado elogios 0 · Vistas 1507

Supongo que te gusta

Origin blog.csdn.net/qq_34087914/article/details/104117304
Recomendado
Clasificación