[Hackerrank] Strings - Comparisons 풀이
예문
https://www.hackerrank.com/challenges/java-string-compare/problem
Sample Input 0
welcometojava
3
Sample Output 0
ava
wel
Explanation 0
String has the following lexicographically-ordered substrings of length :
We then return the first (lexicographically smallest) substring and the last (lexicographically largest) substring as two newline-separated values (i.e., ava\nwel).
The stub code in the editor then prints ava as our first line of output and wel as our second line of output.
해석
- 문자열 비교
input
첫번째 줄 : 문자열
두번재 줄 : 비교할 문자의 크기
- 문자열은 알파벳 순
- 입력 문자열은 [a-zA-Z] 만 포함됨.
output
첫째줄 : 가장 작은 순서의 문자열
둘째줄 : 가장 높은 순서의 문자열
풀이
- String compareTo 사용
제약사항
- 1 <= |s| <= 1000
- s : [a-zA-Z]
코드
public static String getSmallestAndLargest(String s, int k) {
String smallest = s.substring(0, k);
String largest = smallest;
String tempStr;
for (int i = 0; i <= s.length() - k; i++) {
tempStr = s.substring(i, i + k);
if (tempStr.compareTo(smallest) < 0) {
smallest = tempStr;
}
if (tempStr.compareTo(largest) > 0) {
largest = tempStr;
}
}
return smallest + "\n" + largest;
}