每天一算:Reverse String

LeetCode上第344号问题:Reverse String

题目

编写一个函数,其作用是将输入的字符串反转过来。 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A"

解题思路

直接从两头往中间走,同时交换两边的字符即可

动画演示

动画演示

参考代码

代码一

 1// 344. Reverse String
 2// https://leetcode.com/problems/reverse-string/description/
 3// Two Pointers
 4// 时间复杂度: O(n)
 5// 空间复杂度: O(1)
 6class Solution {
 7public:
 8    string reverseString(string s) {
 9
10        int i = 0, j = s.size() - 1;
11        while(i < j){
12            swap(s[i], s[j]);
13            i ++;
14            j --;
15        }
16
17        return s;
18    }
19};

代码二

 1// 344. Reverse String
 2// https://leetcode.com/problems/reverse-string/description/
 3// Two Pointers
 4// 时间复杂度: O(n)
 5// 空间复杂度: O(1)
 6class Solution {
 7public:
 8    string reverseString(string s) {
 9         int left = 0, right = s.size() - 1;
10        while (left < right) {
11           char t = s[left];
12            s[left++] = s[right];
13           s[right--] = t;
14        }
15       return s;
16   }
17};

执行结果

执行结果

我们会在每天早上8点30分准时推送一条LeetCode上的算法题目,并给出改题目的动画解析以及参考答案,每篇文章阅读时长为五分钟左右。

原文发布于微信公众号 - 五分钟学算法(blgczzz)

原文发表时间:2018-11-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Java8新特性——StreamAPI(二)

1. 收集器简介 收集器用来将经过筛选、映射的流进行最后的整理,可以使得最后的结果以不同的形式展现。 collect方法即为收集器,它接收Collector接...

3085
来自专栏有趣的Python

py编程技巧-1.4-如何根据字典中值的大小对于字典中的项排序

实际案例: 某班英语成绩以字典形式存储为{'mtianyan',100,'tudou':'100','shabi':59} 根据成绩高低计算学生排名 解决...

3636
来自专栏云瓣

JS家的排序算法

由于浏览器的原生支持(无需安装任何插件),用JS来学习数据结构和算法也许比c更加便捷些。因为只需一个浏览器就能啪啪啪的调试了。比如下图我学习归并排序算法时,只看...

4108
来自专栏专注研发

交换排序—冒泡排序(Bubble Sort)

在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们...

1172
来自专栏有趣的Python

Python零基础入门看完这一篇就够了: 零基础入门笔记Python开发环境搭建Python的初次体验Python变量和数据类型Python集合类型:list和tuplePython的条件判断和循环

学习python有一年多了,希望通过这篇两万字的学习笔记来复习了,也能让后来者少走一点弯路。在慕课网课程笔记的同时加入了一部分自己的经验补充。 [√] 慕课网P...

1K9
来自专栏C/C++基础

printf()详解之终极无惑

printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。

3533
来自专栏mukekeheart的iOS之旅

No.004 Median of Two Sorted Arrays

4. Median of Two Sorted Arrays Total Accepted: 104147 Total Submissions: 539044 ...

2249
来自专栏CodeSheep的技术分享

Java编程思想学习录(连载之:一切都是对象)

1698
来自专栏卡少编程之旅

Javascript一些优雅实现

35611
来自专栏ml

java学习之协调同步的线程

            当一个线程使用的同步方法中用到某个变量,而此变量有需要其他线程修改后才能符合本线程的需要,      那么可以在同步方法中使用wait(...

3339

扫码关注云+社区

领取腾讯云代金券