Hướng dẫn given two strings find the number of common characters between them python - đã cho hai chuỗi tìm số ký tự chung giữa chúng python

Tôi đang cố gắng in các chữ cái phổ biến từ hai đầu vào người dùng khác nhau bằng cách sử dụng vòng lặp for. . 2. Đầu ra đang cho tôi một danh sách các chữ cái riêng lẻ chứ không phải là một chuỗi. Tôi đã thử phân chia đầu ra nhưng chia ra một lỗi loại.using a for loop. [I need to do it using a for loop.] I am running into two problems: 1. My statement "If char not in output..." is not pulling unique values. 2. The output is giving me a list of individual letters rather than a single string. I tried the split the output but split ran into a type error.

wrd = 'one'
sec_wrd = 'toe'

def unique_letters[x]: 
    output =[]
    for char in x: 
        if char not in output and char != " ": 
            output.append[char]
    return output

final_output = [unique_letters[wrd] + unique_letters[sec_wrd]]

print[sorted[final_output]]

Đã hỏi ngày 4 tháng 2 năm 2018 lúc 18:20Feb 4, 2018 at 18:20

9

Bạn đang cố gắng thực hiện các giao lộ được thiết lập. Python có phương pháp

>>> word_1 = 'one'
>>> word_2 = 'toe'

#    v join the intersection of `set`s to get back the string
#    v                             v  No need to type-cast it to `set`.
#    v                             v  Python takes care of it
>>> ''.join[set[word_1].intersection[word_2]]
'oe'
0 cho cùng. Bạn có thể sử dụng nó cho trường hợp sử dụng của mình như:
>>> word_1 = 'one'
>>> word_2 = 'toe'

#    v join the intersection of `set`s to get back the string
#    v                             v  No need to type-cast it to `set`.
#    v                             v  Python takes care of it
>>> ''.join[set[word_1].intersection[word_2]]
'oe'
0
method for the same. You can use it for your use-case as:

>>> word_1 = 'one'
>>> word_2 = 'toe'

#    v join the intersection of `set`s to get back the string
#    v                             v  No need to type-cast it to `set`.
#    v                             v  Python takes care of it
>>> ''.join[set[word_1].intersection[word_2]]
'oe'

>>> word_1 = 'one'
>>> word_2 = 'toe'

#    v join the intersection of `set`s to get back the string
#    v                             v  No need to type-cast it to `set`.
#    v                             v  Python takes care of it
>>> ''.join[set[word_1].intersection[word_2]]
'oe'
1 sẽ trả về các ký tự duy nhất trong chuỗi của bạn. Phương thức
>>> word_1 = 'one'
>>> word_2 = 'toe'

#    v join the intersection of `set`s to get back the string
#    v                             v  No need to type-cast it to `set`.
#    v                             v  Python takes care of it
>>> ''.join[set[word_1].intersection[word_2]]
'oe'
0 sẽ trả về các ký tự phổ biến trong cả hai tập hợp.

Nếu vòng lặp for phải cho bạn, thì bạn có thể sử dụng danh sách hiểu như:

>>> unique_1 = [w for w in set[word_1] if w in word_2]
# OR
# >>> unique_2 = [w for w in set[word_2] if w in word_1]

>>> ''.join[unique_1]  # Or, ''.join[unique_2]
'oe'

Kết quả trên cũng có thể đạt được với vòng lặp for rõ ràng như:

my_str = ''
for w in set[word_1]:
    if w in word_2:
        my_str += w

# where `my_str` will hold `'oe'`

Đã trả lời ngày 4 tháng 2 năm 2018 lúc 18:31Feb 4, 2018 at 18:31

Moinuddin Quadrimoinuddin QuadriMoinuddin Quadri

45K12 Huy hiệu vàng93 Huy hiệu bạc121 Huy hiệu đồng12 gold badges93 silver badges121 bronze badges

2

Đối với loại vấn đề này, có lẽ bạn nên sử dụng các bộ:

wrd = 'one'
sec_wrd = 'toe'
wrd = set[wrd]
sec_wrd = set[sec_wrd]

print[''.join[sorted[wrd.intersection[sec_wrd]]]]

Đã trả lời ngày 4 tháng 2 năm 2018 lúc 18:32Feb 4, 2018 at 18:32

phù hợp với trận đấumatch

9.3513 huy hiệu vàng21 Huy hiệu bạc38 Huy hiệu đồng3 gold badges21 silver badges38 bronze badges

1

Tôi vừa giải quyết điều này ngày hôm nay trên tín hiệu mã. Nó làm việc cho tất cả các bài kiểm tra.

def solution[s1, s2]:

    common_char = ""
    for i in s1:
        if i not in common_char:
        
            i_in_s1 = s1.count[i]
            i_in_s2 = s2.count[i]
        
            comm_num = []
            comm_num.append[i_in_s1]
            comm_num.append[i_in_s2]
        
            comm_i = min[comm_num]
            new_char = i * comm_i
            common_char += new_char
    
  
    return len[common_char]

Đã trả lời ngày 25 tháng 3 lúc 20:37Mar 25 at 20:37

Chức năng giải quyết vấn đề

def find_common_characters[msg1,msg2]:
    #to remove duplication set[] is used.
    set1=set[msg1]
    set2=set[msg2]
    remove={" "}
    #if you wish to exclude space
    set3=[set1&set2]-remove
    msg=''.join[set3]
    return msg

Cung cấp đầu vào và gọi chức năng cung cấp các giá trị khác nhau cho MSG1, MSG2 và kiểm tra chương trình của bạn Provide different values for msg1,msg2 and test your program

msg1="python"
msg2="Python"
common_characters=find_common_characters[msg1,msg2]
print[common_characters]

Đã trả lời ngày 12 tháng 5 năm 2019 lúc 9:56May 12, 2019 at 9:56

Đây là mã một dòng của bạn nếu bạn muốn số lượng ký tự chung giữa chúng!

def solution[s1,s2]:
 return sum[min[s1.count[x],s2.count[x]] for x in set[s1]]

Đã trả lời ngày 23 tháng 7 lúc 16:05Jul 23 at 16:05

mo1010mo1010mo1010

1379 Huy hiệu đồng9 bronze badges

Bài Viết Liên Quan

Chủ Đề