Dada una cadena sy una cadena t, verifique si s es una subsecuencia de t.
Puede suponer que solo hay letras minúsculas en inglés tanto en s como en t. t es potencialmente una cadena muy larga (longitud ~ = 500.000) y s es una cadena corta (<= 100).
Una subsecuencia de una cadena es una nueva cadena que se forma a partir de la cadena original eliminando algunos (puede ser ninguno) de los caracteres sin alterar las posiciones relativas de los caracteres restantes. (es decir, «ace» es una subsecuencia de «abcde» mientras que «aec» no lo es).
Solución Java
public boolean isSubsequence(String s, String t) { if(s.length()==0) return true; int i=0; int j=0; while(i<s.length() && j<t.length()){ if(s.charAt(i)==t.charAt(j)){ i++; } j++; if(i==s.length()) return true; } return false; } |