题解 | #字符串变形#

字符串变形

https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @param n int整型 
# @return string字符串
#
class Solution:
    def trans(self , s: str, n: int) -> str:
        # write code here
        # start = 1 if s.startswith(' ') else 0
        # end = 1 if s.endswith(' ') else 0
        # s = s.strip()
        s = s[::-1]
        # 全部反转
        s = s.swapcase()
        # 大小写互换
        ls = list(s)
        result = []
        flag = 0
        # flag用来标记空格,判断是直接加入还是反转再加入
        j = 0
        # 记录切片的起点
        for i in range(n):
            if ls[i] != ' ':
                flag = 1
                # flag为1说明此处不是一个空格
                if i == n-1:
                    result.append(''.join(reversed(s[j:])))
                # 在遍历结束时如果没有遇到空格,就把剩下的一个单词反转加入列表
            elif ls[i] == ' ' and flag == 0:
                # flag为0且遍历到一个空格,说明是连续空格,直接将空格加入列表即可
                result.append(ls[i])
                j = i + 1
                # 切片以下一个字符为起点
            elif ls[i] == ' ' and flag == 1:
                # flag为1且遍历到一个空格,说明一个单词已经遍历结束,将该单词反转加入列表
                result.append(''.join(reversed(s[j:i])))
                result.append(' ')
                j = i + 1
                # 切片以下一个字符为起点
                flag = 0
                # flag设置为0,说明刚刚有一个单词加入列表
        return ''.join(result)

全部评论

相关推荐

2025年10月3日中午,在写完定时一年后发给自己的信之后,敲下键盘,写下这篇文字。我把标题的“所有人”加了引号,因为如我们所见,确实有的人顺风顺水,每天过的很开心,或是早早进入大厂,或是年纪轻轻就拿到了高薪offer,或是过着可能我努力十年也不一定实现的生活。但也许,不是每个人的痛苦都能被别人看到的,这个月我经常会哭,被骗6000块钱、手上钱不够导致拖欠房租、生活还要借朋友钱、国庆长假也没有钱去旅游,互联网公司不稳定担心试用期不过(毕竟上段实习就是被裁了,一有点风吹草动就害怕),但这样的我,不是所有人都知道的,居然是有些朋友的羡慕对象。回忆我的七年“长跑”别人都是多年幸福的恋爱长跑,我没有恋...
故事和酒66:让每一颗种子找到合适自己的生长方式,最终绽放出独一无二的花朵,这远比所有人都被迫长成同一棵“参天大树”的世界,更加美好和富有生机。这是社会和环境的问题,而不是我们的问题。然而就是在这样的环境中,楼主依然能突破自我,逆势成长,其中的艰辛可想而知。这一路的苦难终究会化作你成长的养料
你小时候最想从事什么职业
点赞 评论 收藏
分享
08-27 12:02
已编辑
南京外国语学校 网络安全
再来一遍:实则劝各位不要all in华子,不要相信华为hr
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务