Preguntas de la entrevista de hebilla de fuerza de pincel de ChatGPT 01.09. Rotación de cadenas (para la búsqueda y el juicio de coincidencia de cadenas para mejorar la complejidad de la contraseña)

Tema Descripción

字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。

示例1:

 输入:s1 = "waterbottle", s2 = "erbottlewat"
 输出:True
示例2:

 输入:s1 = "aa", s2 = "aba"
 输出:False
提示:

字符串长度在[0, 100000]范围内。
说明:

你能只调用一次检查子串的方法吗?

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/string-rotation-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Empezar a resolver problemas (kotlin)

El código de Kotlin se implementa de la siguiente manera:

fun isFlipedString(s1: String, s2: String): Boolean {
    if (s1.length != s2.length) {
        return false
    }
    val s1s1 = s1 + s1
    return s1s1.contains(s2)
}

// 测试示例
fun main() {
    val s1 = "waterbottle"
    val s2 = "erbottlewat"
    println(isFlipedString(s1, s2))  // 输出:true
    
    val s3 = "aa"
    val s4 = "aba"
    println(isFlipedString(s3, s4))  // 输出:false
}

En este ejemplo, definimos una isFlipedStringfunción para determinar s2si se trata de s1una cadena rotada. Primero juzgamos s1si s2las longitudes de las sumas son iguales y devolvemos directamente si no son iguales false. Luego, s1lo empalmaremos consigo mismo s1s1, y luego s1s1.contains(s2)juzgaremos s2si es s1s1una subcadena, si lo es, lo devolveremos true, de lo contrario lo devolveremos false. En mainla función, probamos dos ejemplos y el resultado fue el esperado.

aplicación práctica

Esta función se puede utilizar para determinar si una cadena es el resultado de la rotación de otra cadena. Los escenarios de aplicación reales son los siguientes:

  1. Determine si la contraseña es un resultado de rotación: en algunos casos, el usuario puede rotar la contraseña al ingresarla, como rotar "contraseña" en "dcontraseña". Esta función se puede usar para verificar si la contraseña ingresada por el usuario es un resultado de la rotación de la contraseña original para aumentar la complejidad y la seguridad de la contraseña.
  2. Determine si una cadena es el resultado de un cambio cíclico: en criptografía y codificación, un cambio cíclico es una operación común que cambia cíclicamente los caracteres de una cadena hacia la derecha o hacia la izquierda. Utilice esta función para determinar si una cadena es el resultado de otra cadena después de una operación de desplazamiento circular.
  3. Coincidencia y búsqueda de cadenas: en algunos casos, necesitamos buscar una cadena dentro de otra cadena. Si sabemos que la cadena de destino es un resultado rotado de la cadena original, podemos usar esta función para ver si la cadena coincide o contiene el resultado rotado.

En resumen, esta función se puede utilizar en varios escenarios en los que es necesario determinar si una cadena es el resultado de la rotación de otra cadena, y puede proporcionar la comodidad del procesamiento y la coincidencia de cadenas.

Supongo que te gusta

Origin blog.csdn.net/qq_39154376/article/details/131842702
Recomendado
Clasificación