欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 代码随想录算法训练营第九天|151.翻转字符串里的单词|卡码网:55.右旋转字符串|28. 实现 strStr()|459.重复的子字符串

代码随想录算法训练营第九天|151.翻转字符串里的单词|卡码网:55.右旋转字符串|28. 实现 strStr()|459.重复的子字符串

2025/2/23 7:52:24 来源:https://blog.csdn.net/kexin197/article/details/145743932  浏览:    关键词:代码随想录算法训练营第九天|151.翻转字符串里的单词|卡码网:55.右旋转字符串|28. 实现 strStr()|459.重复的子字符串

151.翻转字符串里的单词

给定一个字符串,逐个翻转字符串中的每个单词。

示例 1:

输入: "the sky is blue"

输出: "blue is sky the"

示例 2:

输入: " hello world! "

输出: "world! hello"

解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:

输入: "a good example"

输出: "example good a"

解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。


class Solution:

    def reverseWords(self, s: str) -> str:

        words=s[::-1]

#字符串反转方法

        s=" ".join(word[::-1] for word in words.split())

#split默认去除多余空格并切分,strip去除开头和结尾的多余字符

        return s


 

卡码网:55.右旋转字符串

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。

例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"。

输入:输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。第二行为字符串 s,代表需要旋转的字符串。

输出:输出共一行,为进行了右旋转操作后的字符串。


k=int(input())

s=input()

print(s[-k:]+s[:-k])

28. 实现 strStr()

实现 strStr() 函数。

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2

示例 2: 输入: haystack = "aaaaa", needle = "bba" 输出: -1


haystack.index(needle)

haystack.find(needle)

459.重复的子字符串

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。

示例 1

输入: "abab"

输出: True

解释: 可由子字符串 "ab" 重复两次构成。

示例 2:

输入: "aba"

输出: False

示例 3:

输入: "abcabcabcabc"

输出: True

解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。


如果有一个字符串s,在 s + s 拼接后, 不算首尾字符,如果能凑成s字符串,说明s 一定是重复子串组成。

 

class Solution:

    def repeatedSubstringPattern(self, s: str) -> bool:

        if len(s)<=1:

            return False

        ss=s[1:]+s[:-1]

        return ss.find(s)!=-1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词