码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • BM83 字符串变形


    描述

    对于一个长度为 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

    输入:"This is a sample",16

    返回值:"SAMPLE A IS tHIS"

    示例2

    输入:"nowcoder",8

    返回值:"NOWCODER"

    示例3

    输入:"iOS",3

    返回值:"Ios"

    分析:

    可以选择栈作为实现逆序的容器。

    split用来拆分字符串。

    1.如果字符串最后一位有值,则没有区别,

    2.若干最后n位都是切割符,split(" ")不会继续切分,split(" ", -1)会继续切分

    注意StringBuilder的用法。

    1. import java.util.*;
    2. public class Solution {
    3. public String trans(String s, int n) {
    4. // write code here
    5. Stack<String> sk = new Stack<String>();
    6. StringBuilder str = new StringBuilder();
    7. StringBuilder ans = new StringBuilder();
    8. s += ' ';
    9. for(int i = 0;i <= n;i++){
    10. if(s.charAt(i) == ' '){
    11. sk.push(str.toString());
    12. str = new StringBuilder();
    13. }else{
    14. if(s.charAt(i) <= 'z'&&s.charAt(i) >= 'a')
    15. str.append((char)(s.charAt(i) - 'a' + 'A'));
    16. if(s.charAt(i) <= 'Z'&&s.charAt(i) >= 'A')
    17. str.append((char)(s.charAt(i) - 'A' + 'a'));
    18. }
    19. }
    20. while(!sk.empty()){
    21. ans.append(sk.peek());
    22. sk.pop();
    23. ans.append(' ');
    24. }
    25. ans.deleteCharAt(n);
    26. return ans.toString();
    27. }
    28. }

    提交结果:答案正确 运行时间:252ms 占用内存:41004KB 使用语言:Java 用例通过率:100.00%

  • 相关阅读:
    建筑机械相关温、振、应力、动力、拖动、作业标准汇集
    14天刷爆LeetCode算法学习计划——Day02双指针(1)
    C++实现四叉树索引
    银行基于Dell EMC ECS对象存储架构的应用实践手册
    python处理图像文件
    【网络通信层】华为云连接MQTT设备
    电脑系统重装后音频驱动程序怎么修复
    【AI语音】华为EC6110M、Q21AQ、Q21C部分EC6110T、EC6110U_海思3798MV310_通刷_卡刷固件
    基于SSM的教学管理系统设计与实现
    Http协议以及其中的Post、Get等通信模式
  • 原文地址:https://blog.csdn.net/renxingzhadan/article/details/125475737
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号