C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.
퀴즈 질문 | |
예상답변/설명 | 소스 문자열의 부분집합 문자열 (subset string)을 발췌하고 이를 소팅하여 Target이 되는 문자열 s2를 소트한 값과 같은지를 비교하면 전체 소스문자열 s1이 타겟 s2의 Permutation 문자열을 포함하는지 알 수 있다.
public static bool HasStringPermutation(string s1, string s2)
{
// Ex : S1 = ABCDEFGHI
// S2 = ECD
char[] a1 = s1.ToCharArray();
char[] a2 = s2.ToCharArray();
char[] t = new char[a2.Length];
Array.Sort(a2);
for (int i = 0; i < a1.Length - a2.Length + 1; i++)
{
for (int j = 0; j < a2.Length; j++)
{
t[j] = a1[i + j];
}
Array.Sort(t);
if (t.SequenceEqual(a2))
return true;
}
return false;
}
|