-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSecondLargestDigitString.java
50 lines (40 loc) · 1.3 KB
/
SecondLargestDigitString.java
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
import java.util.*;
// my solution_USE list
public class SecondLargestDigitString {
public int secondHighest(String s) {
StringBuffer str = new StringBuffer(s);
List<Integer> list = new ArrayList<>();
char tmp[] = new char[str.length()];
str.getChars(0,str.length(),tmp,0);
for (int i = 0; i < str.length(); i++) {
if (tmp[i] >= '0' && tmp[i] <= '9')
list.add(tmp[i]-'0');
}
List<Integer> resultList = new ArrayList<>();
list.sort(Comparator.reverseOrder());
for(int i = 0; i<list.size(); i++){
if(!resultList.contains(list.get(i)))
resultList.add(list.get(i));
}
if(resultList.size() <2)
return -1;
return resultList.get(1);
}
}
/* best solution_USE TREESET
class Solution {
public int secondHighest(String s) {
if (s.length() == 1 || s == null)
return -1;
TreeSet < Integer > set = new TreeSet < Integer > ();
for (int i = 0; i < s.length(); i++) {
if (Character.isDigit(s.charAt(i)))
set.add(Integer.parseInt(String.valueOf(s.charAt(i))));
}
if (set.size() > 1) {
set.pollLast();
return set.pollLast();
} else return -1;
}
}
*/