More actions
imported>Unknown No edit summary |
(Repair batch-0001 pages from live compare) |
||
| Line 10: | Line 10: | ||
def testSplitWord(self): | def testSplitWord(self): | ||
expect = | expect = ['a','b','c'] | ||
self.anagram.inputWord('abc') | self.anagram.inputWord('abc') | ||
self.anagram.splitWord() | self.anagram.splitWord() | ||
| Line 29: | Line 29: | ||
self.anagram.splitWord() | self.anagram.splitWord() | ||
self.anagram.sortWord() | self.anagram.sortWord() | ||
self.anagram.setAnagramList( | self.anagram.setAnagramList([['abc','cba']]) | ||
self.assertEquals(expect1, self.anagram.isWordListInAnagramList()) | self.assertEquals(expect1, self.anagram.isWordListInAnagramList()) | ||
self.anagram.inputWord('zzz') | self.anagram.inputWord('zzz') | ||
| Line 37: | Line 37: | ||
def testStoreWord(self): | def testStoreWord(self): | ||
expect = | expect = [['abc','cba']] | ||
self.anagram.inputWord('cba') | self.anagram.inputWord('cba') | ||
self.anagram.process() | self.anagram.process() | ||
| Line 43: | Line 43: | ||
def testAcceptence(self): | def testAcceptence(self): | ||
expect = | expect = [['abc','cba','bac'],['aabb','abab']] | ||
self.anagram.inputWord('cba') | self.anagram.inputWord('cba') | ||
self.anagram.process() | self.anagram.process() | ||
| Line 54: | Line 54: | ||
class Anagram: | class Anagram: | ||
def __init__(self): | def __init__(self): | ||
self.anagramList = | self.anagramList = [] | ||
def inputWord(self, word): | def inputWord(self, word): | ||
| Line 60: | Line 60: | ||
def splitWord(self): | def splitWord(self): | ||
self.wordList = | self.wordList = [] | ||
for i in range(len(self.wordString)): | for i in range(len(self.wordString)): | ||
self.wordList.append(self.wordString | self.wordList.append(self.wordString[i]) | ||
def sortWord(self): | def sortWord(self): | ||
| Line 69: | Line 69: | ||
def isWordListInAnagramList(self): | def isWordListInAnagramList(self): | ||
for i in range(len(self.anagramList)): | for i in range(len(self.anagramList)): | ||
if self.anagramList | if self.anagramList[i][0] == self.getSortWordString(): | ||
self.index = i | self.index = i | ||
return True | return True | ||
| Line 79: | Line 79: | ||
def storeWord(self): | def storeWord(self): | ||
if self.isWordListInAnagramList() is True: | if self.isWordListInAnagramList() is True: | ||
self.anagramList | self.anagramList[self.index].append(self.wordString) | ||
else: | else: | ||
self.anagramList.append( | self.anagramList.append([self.getSortWordString()]) | ||
self.anagramList | self.anagramList[len(self.anagramList)-1].append(self.wordString) | ||
def process(self): | def process(self): | ||
| Line 95: | Line 95: | ||
tempString = '' | tempString = '' | ||
for i in range(len(self.wordList)): | for i in range(len(self.wordList)): | ||
tempString += self.wordList | tempString += self.wordList[i] | ||
return tempString | return tempString | ||
| Line 103: | Line 103: | ||
def printAnagramList(self): | def printAnagramList(self): | ||
for i in range(len(self.anagramList)): | for i in range(len(self.anagramList)): | ||
for j in range(1,len(self.anagramList | for j in range(1,len(self.anagramList[i])): | ||
print self.anagramList | print self.anagramList[i][j], | ||
print | print | ||
| Line 120: | Line 120: | ||
---- | ---- | ||
[[ClassifyByAnagram]] | [[ClassifyByAnagram]] | ||
Latest revision as of 23:56, 26 March 2026
소스
import unittest
class AnagramTestCase(unittest.TestCase):
def setUp(self):
self.anagram = Anagram()
def testCreationAnagram(self):
self.assert_(self.anagram)
def testSplitWord(self):
expect = ['a','b','c']
self.anagram.inputWord('abc')
self.anagram.splitWord()
self.assertEquals(expect, self.anagram.getSplitWordList())
def testSortWord(self):
expect = 'abc'
self.anagram.inputWord('cba')
self.anagram.splitWord()
self.anagram.sortWord()
self.assertEquals(expect, self.anagram.getSortWordString())
def testIsWordListInAnagramList(self):
expect1 = True
expect2 = False
self.anagram.inputWord('cba')
self.anagram.splitWord()
self.anagram.sortWord()
self.anagram.setAnagramList([['abc','cba']])
self.assertEquals(expect1, self.anagram.isWordListInAnagramList())
self.anagram.inputWord('zzz')
self.anagram.splitWord()
self.anagram.sortWord()
self.assertEquals(expect2, self.anagram.isWordListInAnagramList())
def testStoreWord(self):
expect = [['abc','cba']]
self.anagram.inputWord('cba')
self.anagram.process()
self.assertEquals(expect, self.anagram.getStoreWord())
def testAcceptence(self):
expect = [['abc','cba','bac'],['aabb','abab']]
self.anagram.inputWord('cba')
self.anagram.process()
self.anagram.inputWord('bac')
self.anagram.process()
self.anagram.inputWord('abab')
self.anagram.process()
self.assertEquals(expect, self.anagram.getStoreWord())
class Anagram:
def __init__(self):
self.anagramList = []
def inputWord(self, word):
self.wordString = word
def splitWord(self):
self.wordList = []
for i in range(len(self.wordString)):
self.wordList.append(self.wordString[i])
def sortWord(self):
self.wordList.sort()
def isWordListInAnagramList(self):
for i in range(len(self.anagramList)):
if self.anagramList[i][0] == self.getSortWordString():
self.index = i
return True
return False
def setAnagramList(self,anagramList):
self.anagramList = anagramList
def storeWord(self):
if self.isWordListInAnagramList() is True:
self.anagramList[self.index].append(self.wordString)
else:
self.anagramList.append([self.getSortWordString()])
self.anagramList[len(self.anagramList)-1].append(self.wordString)
def process(self):
self.splitWord()
self.sortWord()
self.storeWord()
def getSplitWordList(self):
return self.wordList
def getSortWordString(self):
tempString =
for i in range(len(self.wordList)):
tempString += self.wordList[i]
return tempString
def getStoreWord(self):
return self.anagramList
def printAnagramList(self):
for i in range(len(self.anagramList)):
for j in range(1,len(self.anagramList[i])):
print self.anagramList[i][j],
print
if __name__ == '__main__':
#unittest.main()
anagram = Anagram()
while str:
str = raw_input()
anagram.inputWord(str)
anagram.process()
anagram.printAnagramList()
Thread
- 우선은 빠르게 하는 거 생각하지 않고 그냥 생각나는 대로 짰습니다. 이제 이걸 토대로 '빠르게'를 생각해 보아야겠지요 --재동