Write a function that takes a string as input and returns the string reversed.

Example:
Given s = "hello", return "olleh".

个人博客:http://www.cnblogs.com/wdfwolf3/

这道题就是简单的字符串逆置,在C++中字符串类型可以作为数组方式处理,所以经典的数组逆置就可以完成。这里提供两种思路:

1.classic方法头尾交换(16ms)

class Solution {
public:
string reverseString(string s) {
int i=,j=s.size()-;
while(i<j)
{
swap(s[i],s[j]);
i++;
j--;
}
return s;
}
};

2.recursion方法分治递归(44ms)

将字符串分为前后两部分,分别逆置然后合并起来,合并时自然是后半部分在前,前半部分在后。用到字符串截取函数string.substr(),它接收两个参数,第一个为位置索引,即截取的开始位置,默认参数为0,就是字符串的开始;第二个参数为截取字符的数目,如果省略,就是指截取到字符串的末尾。

class Solution {
public:
string reverseString(string s) {
int length=s.size();
if(length<)
return s;
return reverseString(s.substr(length/))+reverseString(s.substr(,length/));
} };

P.S.最后关于swap交换元素介绍两个思路:

1.tmp中间变量,最熟悉的方法。

  tmp=i;

  i=tmp;

  j=tmp;

2.bit的按位抑或^原理,即m^m=0,0^m=m。

  m=m&n;

  n=m&n;                 等价于      n=m&n&n=m;

  m=m&n;              m=m&n&m=n;

leetcode344——Reverse String(C++)的更多相关文章

  1. 344. Reverse String(C++)

    344. Reverse String Write a function that takes a string as input and returns the string reversed. E ...

  2. Leetcode#344. Reverse String(反转字符串)

    题目描述 编写一个函数,其作用是将输入的字符串反转过来. 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man ...

  3. Swift2.0 中的String(二):基本操作

    Swift中的字符串,第二篇,基本操作.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一) ...

  4. Swift2.0 中的String(三):类型转换

    本系列第三篇,String相关的类型转换.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一 ...

  5. Swift2.0 中的String(一):常用属性

    字符串算是平常用的比较多.花样也比较多的一个类型,昨天有空把相关的一些常用操作都写了一遍,总结出来.其实iOS里面的字符串更复杂,还有NSString系列等等,那些API太多将来需要用的时候再慢慢学. ...

  6. Java基础知识强化59:String(字符串)和其他类型的相互转化

    1. String类型 ---> 其他类型 (1)使用基本类型包装类的parseXXX方法 e.g:String(字符串)转化为int(整型) String MyNumber ="12 ...

  7. 【CF1132F】Clear the String(动态规划)

    [CF1132F]Clear the String(动态规划) 题面 CF 题解 考虑区间\(dp\). 增量考虑,每次考虑最后一个字符和谁一起删去,然后直接转移就行了. #include<io ...

  8. Redis支持的数据类型及相应操作命令:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sorted set:有序集合)

    help 命令,3种形式: help 命令 形式 help @<group> 比如:help @generic.help @string.help @hash.help @list.hel ...

  9. int和Integer,String和String(包装类)

    1.int和Integer的值如果是一样的,则是在内存中开辟相同的内存空间 2.但是String和String(包装类)是不一样的 代码演示: int a=1; Integer b = new Int ...

随机推荐

  1. 利用系统镜像文件安装.Net框架的方式

    最近重装系统之后,在安装部分程序时需要.NET3.5框架,在线安装时间较长,网上搜到了一个很好的解决办法.利用windows系统镜像.首先将镜像加载到驱动中比如L,然后在cmd中输入 dism.exe ...

  2. 安装 Linux 与 Windows 10 双系统,你需要了解的一切

    该选Windows 10还是Linux Mint?鱼与熊掌当然可以兼得,但咱们得掌握点小技巧才能顺利搞定. Windows 10绝不是唯一一款值得我们安装在自己计算机之上的免费操作系统.Linux只靠 ...

  3. jquery ajax return值不能取得的解决方案

    jQuery ajax - ajax() 方法 http://www.w3school.com.cn/jquery/ajax_ajax.asp http://www.cnblogs.com/fqw19 ...

  4. Hadoop build error java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter

    When running the command: + mvn site site:stage -DskipTests -DskipTest -DskipITs   you get an error: ...

  5. [四]JFreeChart实践三之饼图

    饼图pie 原理总结 1.准备好要显示的数据放入dataset 2.调用ChartFactory将dataset作为参数传递进去,生成chart 3.掉Servlet工具类将chart作为参数传入生成 ...

  6. JBPM流程实例(PI)Process Instance

    /** * 流程实例 *    *  启动流程实例 *    *  完成任务 *    *  查询 *      *  查询流程实例 *      *  查询任务 *          *  查询正在 ...

  7. springmvc + spring + mybatis + maven整合配置文件

    源码下载地址:http://download.csdn.net/detail/a757956132/9353345 src/main/java sy controller dao model serv ...

  8. [Unity] How to stop camera rendering?

    http://answers.unity3d.com/questions/147988/how-to-pause-the-main-camera-.html I would simply pause ...

  9. android之自定义ViewGroup和自动换行的布局的实现

    viewgroup简单说就是可以装view的view.今天遇到一个问题,就是需要一个可以自动根据一行中view的宽度自动换行的布局,网上 找了下,没有相关的例子,但是找到了思路:自定义一个viewgr ...

  10. 进程控制之wait3和wait4函数

    大多数UNIX系统实现提供了另外两个函数wait3和wait4.它们提供的功能比POSIX.1函数wait.waitpid和waitid所提供的功能要多一个,这与附加参数rusage有关.该参数要求内 ...