File tree 1 file changed +43
-0
lines changed
0060-permutation-sequence
1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ string next (string s) {
4
+ if (s.length ()==1 ) return s;
5
+ int in=-1 , num=0 ;
6
+ for (int i=s.length ()-1 ;i>0 ;i--) {
7
+ if (s[i]-' 0' >s[i-1 ]-' 0' ){
8
+ in=i-1 ;
9
+ num=s[i-1 ]-' 0' ;
10
+ break ;
11
+ }
12
+ }
13
+
14
+ if (in==-1 ) return s;
15
+ int in1=-1 ;
16
+ for (int i=in+1 ;i<s.length ()-1 ;i++) {
17
+ if (s[i]-' 0' >s[in]-' 0' && s[in]-' 0' >s[i+1 ]-' 0' ) {
18
+ in1=i;
19
+ }
20
+ }
21
+ if (in1==-1 ) in1=s.length ()-1 ;
22
+ // cout<<in1<<endl;
23
+ char temp=s[in];
24
+ s[in]=s[in1];
25
+ s[in1]=temp;
26
+ string sub=s.substr (in+1 , s.length ()-in);
27
+ reverse (sub.begin (), sub.end ());
28
+ string ans = s.substr (0 , in+1 ) + sub;
29
+ // cout<<ans<<endl;
30
+ return ans;
31
+ }
32
+
33
+ string getPermutation (int n, int k) {
34
+ string ans=" " ;
35
+ for (int i=1 ;i<=n;i++) {
36
+ ans+=to_string (i);;
37
+ }
38
+ for (int i=0 ;i<k-1 ;i++) {
39
+ ans=next (ans);
40
+ }
41
+ return ans;
42
+ }
43
+ };
You can’t perform that action at this time.
0 commit comments