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 isFlipedString
fonction pour déterminer s2
s'il s'agit s1
d'une chaîne pivotée. Nous jugeons d'abord s1
si s2
les longueurs des sommes sont égales, et revenons directement si elles ne sont pas égales false
. Ensuite, nous allons s1
l'épisser avec lui-même s1s1
, puis s1s1.contains(s2)
juger s2
s'il s'agit s1s1
d'une sous-chaîne, si c'est le cas, la renvoyer true
, sinon la renvoyer false
. Dans main
la 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 :
- 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.
- 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.
- 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.