字符串反转Reverse String

题目https://leetcode.com/problems/reverse-string/

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

Example 1:

Input: “hello”

Output: “olleh”

Example 2:

Input: “A man, a plan, a canal: Panama”

Output: “amanaP :lanac a ,nalp a ,nam A”

C++:

// 题目https://leetcode.com/problems/reverse-string/

#include<iostream>
using namespace std;

class Solution {
public:
    string reverseString(string s) {
        string new_s="";
        for(int i=s.size()-1; i>=0; i--)
        	new_s += s[i];
        return new_s;     
    }
};

int main(){
	Solution S;
	S.reverseString("abcdef");
	return 0;
}

python:

最简洁的写法

class Solution:
    def reverseString(self, s):
        """
        :type s: str
        :rtype: str
        """
        return s[::-1]

其他写法:

class Solution:
    def reverseString(self, s):
        """
        :type s: str
        :rtype: str
        """
        i = len(s)-1
        new_s = ""
        while i>=0:
            new_s += s[i]
            i=i-1
        return new_s

S = Solution()
print(S.reverseString("hello"))

顺便复习下python中双冒号的用法:

a = '123456789'
print("a[2:6] ",a[2:6])
print("a[2:6:3] ",a[2:6:3])
print("a[2:] ",a[2:])
print("a[:] ",a[:])
print("a[::1] ",a[::1])
print("a[::3] ",a[::3])
print("a[::-1] ",a[::-1])
print("a[::-3] ",a[::-3])

输出:

a[2:6]  3456
a[2:6:3]  36
a[2:]  3456789
a[:]  123456789
a[::1]  123456789
a[::3]  147
a[::-1]  987654321
a[::-3]  963

记住,负号就是表示方向,第三个冒号是用来表示间隔,表示每几步。
简单解释s[i:j:k]就是,“片每k个从i到j”。


版权声明:本文为zgj_gutou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。