[LeetCode] 23.Rotate String
2021. 5. 27. 00:00
https://leetcode.com/problems/rotate-string/
1. Problem
We are given two strings, s and goal.
A shift on s consists of taking string s and moving the leftmost character to the rightmost position. For example, if s = 'abcde', then it will be 'bcdea' after one shift on s. Return true if and only if s can become goal after some number of shifts on s.
Example 1:
Input: s = 'abcde', goal = 'cdeab'
Output: true
Example 2:
Input: s = 'abcde', goal = 'abced'
Output: false
2. Code
package leetCode;
public class RotateString {
public static void main(String[] args) {
String s = "abcde";
String goal = "eabcd";
System.out.println(rotateString(s, goal));
}
public static boolean rotateString(String s, String goal) {
if(s.equals(goal)) return true;
for(int i = 0; i < s.length()-1; i++) {
s = s.substring(1) + s.substring(0,1);
if(s.equals(goal)) {
return true;
}
}
return false;
}
}
3. Report
처음에 예제만 보고 goal의 시작 문자열이 s에 몇번째에서 시작하는지 확인 후
substring을 이용해서 s.substring(start) + s.substring(0. start) 와 goal을 비교했지만
같은 문자열이 여러개 있는 경우 오류가 났다.
그래서 한번씩 돌려서 goal 과 비교해는 법으로 구현했다.
faster이 32%나와서 더 빠른 방법을 찾아봤지만 찾지 못했다 ㅠㅠ
'Algorithm > 문제' 카테고리의 다른 글
[boostCamp] 25. 자가진단 문제 6번 (0) | 2021.06.23 |
---|---|
[LeetCode] 24.Missing Number (0) | 2021.06.01 |
[LeetCode] 22.Shuffle String (0) | 2021.05.25 |
[Study] 21. 두개의 원 반경 안에 있는 좌표 값 찾기 (0) | 2021.03.02 |
[LeetCode] 20.Search Insert Position (0) | 2021.03.02 |