문제
중복된 문자열이 있는지 체크하라
소스코드
public class StringUnique_Source : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log(isUnique_ASCII("Hello"));
Debug.Log(isUnique_UNICODE("Hello"));
}
public bool isUnique_ASCII(string str)
{
if (str.Length > 128) return false;
bool[] char_set = new bool[128];
for (int i = 0; i < str.Length; i++)
{
int val = str[i]; // 1. int형으로 캐스팅해서 아스키 뽑기
if (char_set[val]) //3. 만약 72(H)가 또 있다면 true가 리턴되어
{
return false;//4. False 종료
}
char_set[val] = true; // 2. 72(H)번 인덱스가 true가 된다
}
return true;
}
public bool isUnique_UNICODE(string str)
{
Dictionary<int,bool> dictionary = new Dictionary<int, bool>(;
for (int i = 0; i < str.Length; i++)
{
int val = str[i];//1. int형으로 캐스팅해서 아스키 뽑기(키값으로 사용하기 좋음)
if (dictionary.ContainsKey(val)) //3. 해당 키 값이 이미 있다면
{
return false; //4. false 종료
}
dictionary.Add(val,true);//2. 키값 추가와 true
}
return true;
}
}
'기타등등 > 알고리즘 기록' 카테고리의 다른 글
[C++] 나이차이 (0) | 2021.06.16 |
---|---|
[Unity C#] 문자열 뒤집기 (0) | 2021.03.30 |
[Unity C#] 아나그램(Anagram) (0) | 2021.03.30 |
[Unity C#] 랜덤퀴즈 (0) | 2021.03.30 |
[Unity C#] 피보나치 수열(재귀,메모이제이션) (0) | 2021.03.30 |