728x90
SMALL

using System;

public class Solution {
    public int solution(string A, string B) {
        return (B+B).IndexOf(A);
    }
}

 

B string에 B를 한 번더 더해서 A의 문자열을 민 거 같은 효과를 만들고, 그 안에 IndexOf를 사용해서 A가 안에 있는 지 확인 할 수 있다.

using System;
using System.Collections.Generic;

public class Solution {
    public int solution(string A, string B) {
        int answer = 0;
        List<char> q = new List<char>(A);

        for (int i = A.Length - 1; i >= 0; i--)
        {
            if (string.Concat(q) == B)
            {
                return answer;
            }

            q.Insert(0, A[i]);
            q.RemoveAt(q.Count - 1);

            answer++;
        }

        return -1;
    }
}

 

////

///////////////////////

/////

 

using System;

public class Solution {
    public int solution(string A, string B) {
        int answer = -1;
        for (int i = 0; i < A.Length; i++)
        {
            if (A == B)
            {
                return i;
            }
            else
            {
                A = stringShift(A);
            }
        }
        return answer;
    }

    public string stringShift(string s)
    {
        var last = s[s.Length - 1];
        s = s.Remove(s.Length -1, 1);
        s = last.ToString() + s;
        return s;
    }
}

 

 

자바

 

class Solution {
    public int solution(String A, String B) {
        String tempB = B.repeat(2);
        return tempB.indexOf(A);
    }
}

 

 

class Solution {
    public int solution(String A, String B) {
        int answer = 0;
        if(A.equals(B)) return 0;

        while(answer<A.length())
        {
            answer++;
            A = A.substring(A.length()-1) + A.substring(0,A.length()-1);
            
            if(B.equals(A)) 
              break;

        }
        
        if(answer==A.length()) 
          answer = -1;

        return answer;
    }
}
728x90

설정

트랙백

댓글