Descripción del Título
Su amigo está usando el teclado para ingresar su nombre. Ocasionalmente, al escribir el carácter c, es posible que la tecla se mantenga presionada y el carácter se ingrese una o más veces.
Verificará los caracteres ingresados en el teclado. Si corresponde al nombre de su amigo (algunos caracteres pueden estar presionados durante mucho tiempo), devuelva Verdadero.
Ideas
- El significado general de la pregunta es: determinar si hay ciertos caracteres en el nombre de entrada porque la mano sacude la entrada
- El nombre del amigo es nombre y el nombre ingresado por el amigo se escribe
- A través de charAt (), puede obtener el carácter del subíndice especificado en la cadena
- name.charAt (i) representa los caracteres en name, typed.charAt (j) representa los caracteres en typed
- Comparando desde el principio, situación ① Si name.charAt (i) == typed.charAt (j), entonces i y j son ambos ++ , comparando el siguiente carácter, que es equivalente a dos punteros
- ② situación si no es igual, entonces es más typed.charAt (j) es igual a typed.charAt (J-1) , si son iguales, entonces vuelva a ingresar el temblor es, solo j ++ puede
- Caso ③, ambos casos no se cumplen, esto muestra que el carácter actual no es un nombre de carácter que debe aparecer en el orden actual, ni es volver a ingresar el carácter para devolver falso a
Código
class Solution {
public boolean isLongPressedName(String name, String typed) {
int i=0;
int j=0;
while(j<typed.length()){
if(i<name.length()&&name.charAt(i)==typed.charAt(j)){
i++;
j++;
}else if(j>0&&typed.charAt(j)==typed.charAt(j-1)){
j++;
}else{
return false;
}
}
return i==name.length();
}
}