博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode解题思路:344. Reverse String
阅读量:6336 次
发布时间:2019-06-22

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

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

Example:

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

题意:翻转字符串,从头到尾翻转。

基本思路:

1.如果对指针操作还不熟练,可以通过另分配n个字节的内存来进行翻转。即将字符串从后向前读,然后从前向后保存在新内存中,再将指针指向新内存。

代码如下:(如果不把strlen(s)保存成一个单独的数,会运行超时)

1 char* reverseString(char* s) {2     assert(s != NULL);3     int len= strlen(s)-1;4     char* tmp = (char *)malloc(len+2);5     for(int i = len; i>=0; --i)6         tmp[len-i] = s[i];7     tmp[len+1]='\0';8     return tmp;9 }

2.如果对指针掌握已经比较熟练了,那么可以指针的方法,头指针和尾指针互换,向中间移位。这种方法无论是空间还是时间都是最省事的。代码如下:

1 char* reverseString(char* s) { 2     assert(s != NULL); 3     char * beg = s, *end = s+strlen(s)-1, *tmp = s; 4     while(beg 

3.调用C++ STL的方式,<algorithm>中有一个reverse函数,用于翻转各种可以使用双向迭代器的东西。代码如下:

1 class Solution {2 public:3     string reverseString(string s) {4         reverse(&s[0],&s[s.length()]);5         return s;6     }7 };

reverse函数介绍:

简单的问题并不是不重要。

转载于:https://www.cnblogs.com/hellomotty/p/7411140.html

你可能感兴趣的文章
[iOS Animation]-CALayer 绘图效率
查看>>
2012-8-5
查看>>
VS中ProjectDir的值以及$(ProjectDir)../的含义
查看>>
我的友情链接
查看>>
PHP实现排序算法
查看>>
Business Contact Mnanager for Outlook2010
查看>>
9种用户体验设计的状态是必须知道的(五)
查看>>
解决WIN7下组播问题
查看>>
陈松松:视频营销成交率低,这三个因素没到位
查看>>
vmware nat模式原理探究,实现虚拟机跨网段管理
查看>>
JavaSE 学习参考:集合运算
查看>>
【Signals and Systems】 SYLLABUS
查看>>
RH135-2-command-line-interface
查看>>
浅谈OS
查看>>
mac下开启docker API远程调用
查看>>
tar 命令的详解
查看>>
Cisco路由器安全配置
查看>>
第十次作业
查看>>
给定一个字符串s,返回去掉子串"mi"后的字符串。
查看>>
Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本
查看>>