leetcode: permutation sequence
用了https://github.com/soulmachine/leetcode上面康托编码的思路:
class Solution {public: string getPermutation(int n, int k) { string s(n,'0'); for(int i=1;i<=n;i++) { s[i-1]+=i; } string res = ""; k = k-1; int base = getFatorial(n-1); for(int i=1;i
主要看一下string的erase用法:
sequence (1) | string& erase (size_t pos = 0, size_t len = npos); |
---|---|
character (2) | iterator erase (iterator p); |
range (3) | iterator erase (iterator first, iterator last); |
Erases part of the , reducing its :
(1) sequence- Erases the portion of the string value that begins at the character position pos and spans len characters (or until the end of the string, if either the content is too short or if len is . Notice that the default argument erases all characters in the string (like member function ).
- returns *this. (2) character
- Erases the character pointed by p. (3) range
- Erases the sequence of characters in the range [first,last).
- (2)&(3) return an iterator referring to the character that now occupies the position of the first character erased, or if no such character exists.
所以上面的代码里用的是erase的第1种方式。
还可以改改,用第二种方式:
for(int i=1;i