题目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”。