아나그램이란?
같은 문자로 이루어진 문자열이지만, 문자들의 정렬이 다른 경우 ( HelloWorld / WrlodHolle)
소스코드
public class Anagram_Source : MonoBehaviour
{
void Start()
{
string inputstr = "HelloWorld";
string inputstr2 = "WrlodHolle";
Debug.Log(AnagramChecker(inputstr, inputstr2));
}
bool AnagramChecker(string input1, string input2)
{
//공백 제거
input1 = input1.Replace(" ", "");
input2 = input2.Replace(" ", "");
//1차적으로 길이로 판단
if(input1.Length != input2.Length)
{
return false;
}
//정렬
string newstr = StringSort(input1);
string newstr2 = StringSort(input2);
//비교
if (newstr.Equals(newstr2))
{
return true;
}
return false;
}
string StringSort(string input)
{
var chars = input.ToLower().ToCharArray(); //소문자로 바꾸고 char[]로 변환
Array.Sort(chars);//정렬
return new string(chars);//다시 문자열로 변환
}
}
'기타등등 > 알고리즘 기록' 카테고리의 다른 글
[Unity C#] 문자열 뒤집기 (0) | 2021.03.30 |
---|---|
[Unity C#] 중복 문자열 체크 (아스키코드, 유니코드) (0) | 2021.03.30 |
[Unity C#] 랜덤퀴즈 (0) | 2021.03.30 |
[Unity C#] 피보나치 수열(재귀,메모이제이션) (0) | 2021.03.30 |
[Unity C#] 합병 정렬 (0) | 2021.03.28 |