-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUVa00146.java
More file actions
67 lines (51 loc) · 1.39 KB
/
UVa00146.java
File metadata and controls
67 lines (51 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.company;
import java.lang.reflect.Array;
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// write your code here
Scanner keyboard = new Scanner(System.in);
String input ;
int k,j;
char temp ;
char[] c;
while(keyboard.hasNextLine())
{
k = -1 ;
input = keyboard.nextLine();
if(input.equals("#"))
break;
c = input.toCharArray();
for(int i = c.length-1 ; i > 0 ; i --)
{
if(c[i] > c[i-1])
{
k = i ;
break ;
}
}
if(k == -1)
{
System.out.println("No Successor");
continue;
}
int target = FindSmallerIndex(c,k);
temp = c[target] ;
c[target] = c[k-1] ;
c[k-1] = temp ;
//for(int i = c.length - 1 ; i >=k ; i --)
Arrays.sort(c,k,c.length);
System.out.println(String.valueOf(c));
}
}
public static int FindSmallerIndex(char[] c , int k)
{
int minIndex = k;
for(int i = k+1 ; i < c.length ; i ++)
{
if(c[k-1]<c[i] && c[i]<c[k]) minIndex = i;
}
return minIndex;
}
}