程序分享--常见算法/编程面试题:反转字符串中的单词

关注我,持续分享逻辑思维&管理思维&面试题; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;

推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容,持续上传中。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可接项目赚外快,绝对划算。不仅学会如何编程,还将学会如何将AI技术应用到实际问题中,为您的职业生涯增添一笔宝贵的财富。

-------------------------------------正文----------------------------------------

给你一个字符串 s ,请你反转字符串中 单词 的顺序。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。

注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

示例 1:

输入:s = "the sky is blue"
输出:"blue is sky the"

示例 2:

输入:s = "  hello world  "
输出:"world hello"
解释:反转后的字符串中不能存在前导空格和尾随空格。

示例 3:

输入:s = "a good   example"
输出:"example good a"
解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

提示:

  • 1 <= s.length <= 104
  • s 包含英文大小写字母、数字和空格 ' '
  • s 中 至少存在一个 单词

-------------------------------------答案----------------------------------------

class Solution {
public:
    string reverseWords(string s) {
        int i,j;
        int len = s.size();
        for(i = 0;i < len && s[i] == ' ';i++);
        for(j = len-1;j >= 0 && s[j] == ' ';j--);
        s = s.substr(i,j-i+1);
        
        i = s.size()-1;
        j = s.size()-1;
        string result = "";
        while(i >= 0) {
            while(i >= 0 && s[i] != ' ') i--;
            result += s.substr(i+1,j-i) + " ";
            while(i >= 0 && s[i] == ' ') i--; 
            j = i;
        }
        result = result.substr(0,result.size()-1);
        return result;
    }
};

感兴趣的同学辛苦 关注/点赞 ,持续分享逻辑、算法、管理、技术、人工智能相关的文章。

有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。
或关注博主免费专栏【程序员宝典--常用代码分享】里面有大量面试涉及的算法或数据结构编程题。

博主其它经典原创:《管理心得--如何高效进行跨部门合作》,《技术心得--如何成为优秀的架构师》、《管理心得--如何成为优秀的架构师》、《管理心理--程序员如何选择职业赛道》,及
C#实例:SQL如何添加数据》,《C#实战分享--爬虫的基础原理及实现》欢迎大家阅读。

最近更新

  1. TensorFlow编程环境:构建深度学习的乐园

    2024-06-11 23:52:01       0 阅读
  2. 计算机网络(6) ICMP协议

    2024-06-11 23:52:01       0 阅读
  3. 【代码】3d->video

    2024-06-11 23:52:01       0 阅读
  4. 前端常用排序算法

    2024-06-11 23:52:01       0 阅读

热门阅读

  1. LED灯的功率以及好的品牌推荐

    2024-06-11 23:52:01       2 阅读
  2. Web前端三大主流框架

    2024-06-11 23:52:01       3 阅读
  3. c,c++,go语言字符串的演进

    2024-06-11 23:52:01       3 阅读
  4. Web前端GIS入门:从基础到实践的全方位探索

    2024-06-11 23:52:01       3 阅读
  5. LLVM Cpu0 新后端6

    2024-06-11 23:52:01       3 阅读
  6. 大模型开发Semantic Kernel 简介

    2024-06-11 23:52:01       3 阅读
  7. Spring Boot开发宝典!超实用50个注解一网打尽

    2024-06-11 23:52:01       4 阅读
  8. 求职力扣刷题DAY20--二叉树 part06

    2024-06-11 23:52:01       3 阅读
  9. Dubbo动态服务下线

    2024-06-11 23:52:01       4 阅读
  10. threading.Lock()互斥锁

    2024-06-11 23:52:01       2 阅读
  11. 内连接和外连接

    2024-06-11 23:52:01       3 阅读