码迷,mamicode.com
首页 > 其他好文 > 详细

[CareerCup] 1.2 Reverse String 翻转字符串

时间:2015-07-16 00:28:29      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

 

1.2 Implement a function void reverse(char *str) in C or C++ which reverses a null-terminated string.

 

这道题让我们用C++或C语言来翻转一个字符串,不算一道难题,在之前那道Reverse Words in a String 翻转字符串中的单词中用到了这个函数,跟那道题比起来,这题算简单的了。C语言的版本要比C++的稍微复杂一些,应为string类集成了很多有用的功能,比如得到字符串的长度,用下标直接访问啊等等,C语言实现的时候要注意首先要用一个while循环来找到最后一个字符,然后再往中间走。参见代码如下:

 

C++:

class Solution {
public:
    void reverse(string  &s) {
        int left = 0, right = s.size() - 1;
        while (left < right) {
            char tmp = s[left];
            s[left++] = s[right];
            s[right--] = tmp;
        } 
    }
};

 

C

class Solution {
public:
    void reverse(char *str) {
        char *right = str;
        if (str) {
            while (*right) ++right;
            --right;
            while (str < right) {
                char tmp = *str;
                *str++ = *right;
                *right-- = tmp;
            }
        }
    }
};

 

[CareerCup] 1.2 Reverse String 翻转字符串

标签:

原文地址:http://www.cnblogs.com/grandyang/p/4649783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!