首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >字符串面试题(二)— 间隔字符串逆序

字符串面试题(二)— 间隔字符串逆序

作者头像
大黄大黄大黄
发布于 2018-09-14 09:57:39
发布于 2018-09-14 09:57:39
95100
代码可运行
举报
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/54783435

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串A和它的长度,请返回逆序后的字符串。

例子: “dog loves pig”

输出: “pig loves dog”


示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Reverse {
public:
    string reverseSentence(string A, int n) 
    {
        reverseWord(A,0,n-1);
        int i=0,j=0;
        while(i<n)
        {
            while(i<n&&A[i]==' ')
                i++;
            if(i>=n)
                return A;
            j=i;
            while(i<n&&A[i]!=' ')
                i++;
            if(i>=n)
            {
                reverseWord(A,j,n-1);
                return A;
            }
            reverseWord(A,j,i-1);
        }
        return A;

    }
    void reverseWord(string &A,int low,int high)
    //局部逆序函数
    {
        if(low>=high)
            return;
        char temp;
        while(low<high)
        {
            temp=A[low];
            A[low]=A[high];
            A[high]=temp;
            low++;
            high--;
        }
    }
};
int main()
{
    string arr("dog loves pig");
    Reverse a;
    a.reverseSentence(arr,13);
    cout<<arr;
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年01月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
字符串面试题(一)— 字符串逆序
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/54783416
大黄大黄大黄
2018/09/14
7810
翻转字符串
给定你的就是字符数组char[] c = new char[] {'h', 'o', 'w', ' ', 'a', 'r', 'e', ' ', 'y', 'o', 'u'};
砖业洋__
2023/05/06
1820
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/53675660
大黄大黄大黄
2018/09/14
2.3K0
牛客网题型总结(2)(排序算法1)(冒泡排序与快速排序)
排序算法能够用来帮助我们完成一些排序的题,甚至有些题目就是让我们编写出实现某个排序算法的程序
代码小豪
2024/06/08
1000
字符串面试题(三)— 把一个字符串的大写字母放到字符串的后面
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/53675627
大黄大黄大黄
2018/09/14
1.1K0
力扣(LeetCode)刷题,简单题(第25期)
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
不脱发的程序猿
2021/01/20
2720
快速排序
如果说希尔排序是简单插入排序的升级,堆排序是简单选择排序的升级,那么快速排序就是冒泡排序的升级了。相对于冒泡排序,快速排序增大了记录比较和移动的距离,将关键字较大的记录移动到后面,较小的移动到前面,从而减少总的比较和移动次数。 快速排序的基本思想:通过每一趟排序都将待排序的记录按照选定的关键字分成两部分,其中一部分记录的关键字均比另一部分的小,然后通过迭代然后在将每部分单独再分成两部分,如此循环,直到被分成的无法再分为止。 快速排序中每一趟排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=
用户1215536
2018/02/05
5350
搞定常被问的数组和排序算法,附面试题
数组是 Java 编程中最重要的数据结构之一,也是最基本的数据结构,Java 中的常用集合 ArrayList、HashMap 等内部的实现都使用到了数组结构。数组是只能用来存储一种类型的集合,可以通过下标访问数值中的所有元素。
架构师修炼
2020/07/17
8210
算法题目(四)
题目:我们把只包含因子2、3 和5 的数称作丑数(Ugly Number)。求从小到大的顺序的第1500个丑数。
Helloted
2022/06/06
3440
算法题目(四)
【PTA】7-2 字符串逆序 (15分)
输入格式: 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
Regan Yue
2021/09/16
7960
大话字符串逆序
面试官:“先来一点基础的吧,用Java写一个方法,入参是一个字符串,返回逆序后的字符串。”
万猫学社
2022/04/22
2200
【leetcode刷题】T86-有效的括号字符串
给定只包含( ,) 和 *三种字符的字符串,写一个函数来检验是否为有效字符串。有效字符串规则如下:
木又AI帮
2019/07/17
5440
字符串逆序 - 多种方法实现
对字符串进行逆序,以字符串abcdef为例 1. 借助额外数组 #include <stdio.h> #include <string.h> int main() { char str[] = "abcdef"; //求字符串的大小,包括'\0'在内 int sz = strlen(str) + 1; //动态内存分配,申请一个大小为sz的字符数组 char* p = (char*)malloc(sizeof(char) * sz); int i = 0;
怠惰的未禾
2023/04/27
3890
字符串逆序 - 多种方法实现
C语言每日一题(2)字符串左旋
首先基于最简单的思路,将需要左旋变动的值取出,然后将剩下的字符进行平移,最后再将刚拿出来的值接到后面去。
对编程一片赤诚的小吴
2024/01/23
1700
每日一刷《剑指offer》字符串篇之左旋转字符串
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列  S ,请你把其循环左移 K 位后的序列输出。例如,字符序列 S = ”abcXYZdef” , 要求输出循环左移 3 位后的结果,即 “XYZdefabc”
终有救赎
2023/11/18
1920
每日一刷《剑指offer》字符串篇之左旋转字符串
字符串反转问题
首先是我之前写的程序,同时这也是处理第一类的字符串反转问题,也就是输入This is a string., 输出为.gnirts a si sihT: #include <stdio.h> #include <string.h>/*我之前的这个代码,有一个很致命的BUG,在字符串长度为奇数的时候运行时正确的 *但是在字符串长度为偶数的时候运行却是错误的, *比如“ab”,str的地址为0x89,ptr的地址为0x8A,当str++,ptr--执行以后 *str和ptr都是不会相等的,也就是不会结束wh
猿人谷
2018/01/17
1K0
字符串反转问题
C语言每日一题(1)字符串逆序
实现一个字符串逆序的方式有很多,可以倒序输出,也可以利用数组下标进行交换,当然,也可以利用指针。
对编程一片赤诚的小吴
2024/01/23
3560
集合和数组的相互转换
很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。
全栈程序员站长
2022/07/04
2950
linux c/c++ 面试题目整理(二)
主要层次结构采用5层结构:应用层/传输层/网络层/数据链路层/物理层,其中部分层次中常见协议如下:
cpp加油站
2021/04/16
4410
linux c/c++ 面试题目整理(二)
八大排序-上次看到这么好的排序博客还是在上次
本文将用说人话+动图的形式带你搞懂常见排序算法,简要分析复杂度、稳定性等指标,并给出参考代码。最后安利sort()函数的使用。
唔仄lo咚锵
2021/12/30
6680
八大排序-上次看到这么好的排序博客还是在上次
推荐阅读
相关推荐
字符串面试题(一)— 字符串逆序
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档