Rastreador de cadenas – índices, subcadenas y algoritmos con cadenas
InformáticaAlgoritmos y resolución de problemasEdades 15–16
Cargando…
Inicia sesión para usarUna cadena se dibuja como una fila de celdas de caracteres con índices desde 0. El modo Operaciones con cadenas trata la concatenación, la longitud, el carácter en un índice, la subcadena o rebanada [a, b) sin el índice final, la búsqueda (indexOf), equals, compareTo, mayúsculas/minúsculas, reemplazar, dividir y los códigos de carácter, con los resultados en pseudocódigo, Python y Java a la vez, errores de índice incluidos. El modo Algoritmos con bucles ejecuta paso a paso contar un carácter, invertir, comprobar un palíndromo y la búsqueda ingenua con una tabla de traza, y el último modo cuenta las comparaciones de la búsqueda ingenua frente a Boyer–Moore.
Lección: Cadenas: índices, rebanadas y subcadenas, métodos de cadenas y recorrido de cadenas
Qué muestra
Una cadena es una secuencia inmutable de caracteres, cada uno con un índice que empieza en 0. La rebanada s[a:b] de Python y s.substring(a, b) de Java incluyen el índice a y excluyen el b, así que devuelven b − a caracteres; Java lanza una excepción si un índice está fuera de rango, mientras que Python recorta los índices de la rebanada. Métodos como upper, replace y split devuelven cadenas nuevas. Los algoritmos con bucles recorren los caracteres índice a índice y una tabla de traza registra cada paso. Boyer–Moore compara el patrón desde la derecha y salta hacia delante tras un fallo.
Cómo usarla
Escribe una cadena s (y t, r o c cuando se pidan). En Operaciones con cadenas, elige una Operación, mueve a y b y compara los resultados en Pseudocódigo, Python y Java; marca Mostrar códigos de carácter para ver los valores ASCII/Unicode. En Algoritmos con bucles, elige un Algoritmo y el lenguaje en Código, pulsa Paso o Reproducir y sigue la línea resaltada y la tabla de traza. En Ingenua vs Boyer–Moore, avanza ambas búsquedas y compara sus comparaciones.
Parámetros que puedes cambiar
- Modo Operaciones con cadenas, Algoritmos con bucles, Búsqueda: ingenua vs Boyer–Moore
- Operación s + t (concatenación), longitud, carácter en el índice a, subcadena / rebanada [a, b), buscar t (find / indexOf), igualdad (equals), comparar (compareTo), a mayúsculas, a minúsculas, reemplazar t por r, dividir en c, código de carácter (ord / chr)
- Algoritmo contar un carácter c, invertir la cadena, comprobar palíndromo, búsqueda ingenua de subcadena
- Lenguaje del código Pseudocódigo, Python, Java
- Cadena s
- Segunda cadena t (patrón)
- Reemplazo r
- Carácter c
- Índice a 0–28
- Índice b 0–28
- Mostrar códigos de carácter
- Velocidad 0,5–10 pasos/s
Preguntas para explorar
- ¿Por qué s.substring(2, 5) devuelve 3 caracteres y qué pasa en Java y en Python si b es mayor que la longitud?
- ¿Por qué "apple".compareTo("Apple") da un número positivo?
- ¿Por qué Boyer–Moore necesita menos comparaciones que la búsqueda ingenua cuando el patrón es largo?