博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[剑指offer] 翻转字符串
阅读量:4185 次
发布时间:2019-05-26

本文共 1144 字,大约阅读时间需要 3 分钟。

题目描述

输入一个英文句子,翻转句子中单词的顺序,但是单词内字符顺序不变,为了简单起见,标点符号与普通字母一样处理。
例如:输入“student. a am I”,输出“I am a student.”。

代码实现如下:

void Reverse(string &str, int left, int right){    while (left < right)    {        swap(str[left], str[right]);        left++;        right--;    }}string ReverseSentence(string str){    if (str.empty())        return nullptr;    //翻转整个句子    Reverse(str, 0, str.size() - 1);    //翻转各个单词    int left = 0;    int right = 0;    while (right <= str.size())    {        if (str[right] == ' ' || right == str.size() && str[right - 1] != ' ')        {            Reverse(str, left, right - 1);            left = right + 1;        }        right++;    }    return str;}int main(){    cout<

题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。

代码实现如下:

#include 
#include
using namespace std;string LeftRotateString(string str, int n){ if (str.empty() || n <= 0) return 0; string s = str + str; return s.substr(n,str.length());}//测试int main(){ string s = "abcXYZdef"; cout << LeftRotateString(s, 3) << endl; return 0;}

转载地址:http://jxuoi.baihongyu.com/

你可能感兴趣的文章
JAVA编写HTTP代码并发布在网上
查看>>
JDBC连接数据库的原理和步骤
查看>>
开发微信公众平台的基本功能
查看>>
JSP内置对象的学习
查看>>
用java写文件输入输出流,实现复制粘贴的方法
查看>>
学习JSP的方法步骤(参考)
查看>>
JSP中常见TOMCAT错误代码原因
查看>>
MyEclipse中WEB项目加载mysql驱动方法
查看>>
常见编写JAVA报错总结
查看>>
org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
查看>>
UTF-8和GBK有什么区别
查看>>
增加MyEclipse分配内存的方法
查看>>
头痛与早餐
查看>>
[转]在ASP.NET 2.0中操作数据::创建一个数据访问层
查看>>
Linux命令之chmod详解
查看>>
【java小程序实战】小程序注销功能实现
查看>>
leetcode Unique Paths II
查看>>
几个大数据的问题
查看>>
CareerCup Pots of gold game:看谁拿的钱多
查看>>
CarreerCup Sort Height
查看>>