Aquí está el código.
val stack = Array(inputString.length + 1) { "" } var current = 0 for ((i, char) in inputString.withIndex()) { if (char == '(') { current += 1 continue } else if (char == ')') { val enclosedString = stack[current] stack[current - 1] = stack[current - 1] + enclosedString.reversed() current -= 1 continue } else { stack[current] += char //here's the compile time error } }Recibo un error que dice "Ningún método establecido proporciona acceso a la matriz". no entiendo esto
Si lo cambio a:
stack[current] = stack[current] + charlas cosas funcionan bien
¿Por qué está pasando esto?
La causa del error es la asignación incorrecta de una variable Char a un Array<String> , necesita convertir el Char a String antes, y eso es lo que está sucediendo en la declaración
stack[current] = stack[current] + char La función + devuelve una nueva String que se concatena con la representación de cadena del lado derecho (es decir, llama automáticamente a la toString en el operando derecho). En otras palabras, está convirtiendo la variable Char char a String antes de la concatenación.
También puede convertirlo usted mismo.
stack[current] += char.toString()