[LeetCode] 23.Rotate String

2021. 5. 27. 00:00

https://leetcode.com/problems/rotate-string/

 

Rotate String - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

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%나와서 더 빠른 방법을 찾아봤지만 찾지 못했다 ㅠㅠ

BELATED ARTICLES

more