2014-12-07 3 views
2

두 개의 문자열 인수를 사용하고 두 인수 문자열에있는 문자 만 포함하는 문자열을 반환해야합니다. 반환 값에는 중복 문자가 없어야합니다. 파이썬 공용 문자열을 중복하지 않고 문자열로 출력

내가 무엇을 가지고 있지만, 나는 그것은 'ol'

+0

코드 검토에 더 많은 것이 속하는 지 확실하지 않은 경우 ... –

+0

@jmendeth 코드 검토에 속한 것 (이미 명백한 것은 아닙니다) – Dannnno

+0

명확한 것은 또는 무언가를 인쇄하고 있습니까? 양자 모두? 그리고 어떤 언어 기능을 사용할 수 있습니까? 'letter'는 작업에 가장 적합한 이름이 아닙니다 : – Dannnno

답변

1

s = set() 

def letter(x,z): 
    for i in x: 
     for f in z: 
      if i == f: 
       s.add(i) 


letter("hello","world") 
print("".join(s)) 

시도가있는 경우 한 번 일을 인쇄 할 필요가 순서가 중요하지 않다면 각 단어의 문자 수가 set& 교차로를 취할 수 있습니다. join 그것은 단일 문자열로 설정되고 return입니다.

def makeString(a, b): 
    return ''.join(set(a) & set(b)) 

>>> makeString('sentence', 'santa') 
'nts' 
5

하면 인쇄됩니다 두 개 이상의

def letter(x,z): 
    for i in x: 
     for f in z: 
      if i == f: 
       s = str(i) 
       print(s) 
+0

또한'(SET (a)). 교점 (b)는 ' –

+0

@gnibbler 개/비효율적 문자열과'intersection' .join가'? ' – Wolf

+0

@Cyber ​​어쩌면 당신이 더 *이 * ;-) – Wolf

1

하면 set의 몇 가지 이유 (아마도 당신은 하나 또는 문자열의 다른 순서를 유지하려면위한 가방 아닌, 시도 :

def common_letters(s1, s2): 
    unique_letters = [] 
    for letter in s1: 
     if letter in s2 and letter not in unique_letters: 
      unique_letters.append(letter) 

    return ''.join(unique_letters) 

print(common_letters('spam', 'arthuprs')) 

합니다 (print() 파이썬 3 가정)

+0

print()는 Python 2.6 이후에서 잘 작동합니다. Python2에서 Python3으로 변환 할 때 문제가 발생하지 않기 때문에 올바른 방법입니다. –

관련 문제