태그: anagram

안녕하세요. 언제나 휴일입니다.

이번에는 두 개의 문자열이 애너그램(anagram) 인지 판별하는 소스 코드입니다.

애너그램이란 서로 다른 문자열을 구성하는 문자의 집합이 같은 것을 말합니다. 따라서 하나의 문자열의 문자를 재배치하였을 때 다른 문자열과 같게 만들 수 있다면 애너그램이라고 말합니다.

알고리즘은 다음과 같습니다.

IsAnagram(s1, s2)

…if(length(s1) is not equal length(s2))

……return false

…copy(buf,s1)

…Loop1(i:0->s2[i]’s character is true character)

……check:=false

……Loop2(j:0->buf[j]’s character is true character)

………if(s2[i] is equal buf[j])

…………remove buf[j]

…………check:=true

…………break Loop1

……if(check is false)

………return false

…return true

실행 결과