Questions d'entretien sur la boucle de force de brosse ChatGPT 01.09. Rotation de chaîne (pour la recherche de correspondance de chaîne et le jugement afin d'améliorer la complexité du mot de passe)

description du sujet

字符串轮转。给定两个字符串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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Commencer à résoudre des problèmes (kotlin)

Le code Kotlin est implémenté comme suit :

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
}

Dans cet exemple, nous définissons une isFlipedStringfonction pour déterminer s2s'il s'agit s1d'une chaîne pivotée. Nous jugeons d'abord s1si s2les longueurs des sommes sont égales, et revenons directement si elles ne sont pas égales false. Ensuite, nous allons s1l'épisser avec lui-même s1s1, puis s1s1.contains(s2)juger s2s'il s'agit s1s1d'une sous-chaîne, si c'est le cas, la renvoyer true, sinon la renvoyer false. Dans mainla fonction, nous avons testé deux exemples et la sortie était comme prévu.

application pratique

Cette fonction peut être utilisée pour déterminer si une chaîne est le résultat de la rotation d'une autre chaîne. Les scénarios d'application réels sont les suivants :

  1. Déterminez si le mot de passe est un résultat de rotation : dans certains cas, l'utilisateur peut faire pivoter le mot de passe lors de sa saisie, par exemple en transformant "password" en "dpassword". Cette fonction peut être utilisée pour vérifier si le mot de passe entré par l'utilisateur est un résultat de rotation du mot de passe d'origine pour augmenter la complexité et la sécurité du mot de passe.
  2. Déterminer si une chaîne est le résultat d'un décalage cyclique : en cryptographie et encodage, un décalage cyclique est une opération courante qui décale cycliquement les caractères d'une chaîne vers la droite ou vers la gauche. Utilisez cette fonction pour déterminer si une chaîne est le résultat d'une autre chaîne après une opération de décalage circulaire.
  3. Correspondance et recherche de chaînes : dans certains cas, nous devons rechercher une chaîne dans une autre chaîne. Si nous savons que la chaîne cible est un résultat pivoté de la chaîne d'origine, nous pouvons utiliser cette fonction pour voir si la chaîne correspond ou contient le résultat pivoté.

En bref, cette fonction peut être utilisée dans divers scénarios où il est nécessaire de déterminer si une chaîne est le résultat de la rotation d'une autre chaîne, et elle peut offrir la commodité du traitement et de la correspondance des chaînes.

Je suppose que tu aimes

Origine blog.csdn.net/qq_39154376/article/details/131842702
conseillé
Classement