前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BM83 字符串变形

BM83 字符串变形

原创
作者头像
用户9955628
发布2022-08-22 13:34:30
3100
发布2022-08-22 13:34:30
举报
文章被收录于专栏:python3基础算法

描述

对于一个长度为 n 字符串,我们需要对它做一些变形。

首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。

比如"Hello World"变形后就变成了"wORLD hELLO"。

数据范围: 1\le n \le 10^61≤n≤106 , 字符串中包括大写英文字母、小写英文字母、空格。

进阶:空间复杂度 O(n)O(n) , 时间复杂度 O(n)O(n)

输入描述:

给定一个字符串s以及它的长度n(1 ≤ n ≤ 10^6)

返回值描述:

请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。

示例1

输入:

代码语言:javascript
复制
"This is a sample",16

复制

返回值:

代码语言:javascript
复制
"SAMPLE A IS tHIS"

示例2

输入:

代码语言:javascript
复制
"nowcoder",8

返回值:

代码语言:javascript
复制
"NOWCODER"

示例3

输入:

代码语言:javascript
复制
"iOS",3

返回值:

代码语言:javascript
复制
"Ios"

思路:

  1. 将字符串按照空格分割为list
  2. 反转list
  3. list中的元素大小写反转
  4. 拼接字符串
  5. 拼接后的末尾多了空个,取0:n输出

代码:

代码语言:javascript
复制
class Solution:
    def trans(self , s: str, n: int) -> str:
        # write code here
        #以空格分割字符串为列表
        li = s.split(" ")
        #反转列表
        li = li[::-1]
        s = ''
        #大小写互换
        for word in li:
            word = word.swapcase()
            s += word
            #拼接字符串,最后会多一个空格
            s+= " "
        #输出截取长度为n,去除最后的空格
        return s[0:n]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 描述
    • 输入描述:
      • 返回值描述:
      • 示例1
      • 示例2
      • 示例3
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档