3
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Đầu ra của mã này tiếp tục là 4. Tuy nhiên, đầu ra phải là 3. Giao điểm đã đặt có mặt bởi vì tôi tin rằng đó là chìa khóa cho câu trả lời. Lý do cho câu trả lời là 4 thay vì 3 đến từ số 2 Q và 1 R phù hợp với S2 trong S1.
s2 = "qsrqq"
s1 = "qqtrr"
counts1=0
counts2=0
letters= set.intersection[set[s1], set[s2]]
for letter1 in set[s1]:
counts1 += s2.count[letter1]
for letter2 in set[s2]:
counts2 += s1.count[letter2]
counts = min[counts1, counts2]
print [counts]
Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.
Đã hỏi ngày 30 tháng 5 năm 2017 lúc 18:28May 30, 2017 at 18:28
Drew Bennettdrew BennettDrew Bennett
4833 Huy hiệu vàng6 Huy hiệu bạc25 Huy hiệu Đồng3 gold badges6 silver badges25 bronze badges
7
Nếu bạn muốn duy trì số lượng ký tự chung, bạn nên sử dụng bộ sưu tập.
from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
Đã trả lời ngày 30 tháng 5 năm 2017 lúc 18:39May 30, 2017 at 18:39
Chó lười biếnglazy dog
2.29612 huy hiệu bạc21 Huy hiệu đồng12 silver badges21 bronze badges
1
Đây là một giải pháp không liên quan đến các bộ:
s2 = sorted["qsrqq"]
s1 = sorted["qqtrr"]
count = 0
while len[s1]>0 and len[s2]>0:
if s1[0] == s2[0]:
count += 1
s1 = s1[1:]
s2 = s2[1:]
elif s1[0] < s2[0]:
s1 = s1[1:]
else:
s2 = s2[1:]
print[count]
Đã trả lời ngày 30 tháng 5 năm 2017 lúc 18:41May 30, 2017 at 18:41
SCOTT HUNTSCOTT HUNTERScott Hunter
47.5K11 Huy hiệu vàng56 Huy hiệu bạc95 Huy hiệu Đồng11 gold badges56 silver badges95 bronze badges
1
#!/usr/bin/python
s2 = "qsrqq"
s1 = "qqtrr"
counts1=0
counts2=0
letters= set.intersection[set[s1], set[s2]]
print ["letters: "+str[letters] + " intersection count: "+str[len[letters]]]
for letter1 in set[s1]:
print ["letter1 " + str[letter1]]
counts1 += 1
for letter2 in set[s2]:
print ["letter2 " + str[letter2] ]
counts2 += 1
print ["counts1 " + str[counts1] + " counts2 " + str[counts2] ]
counts = min[counts1, counts2]
print [counts]
Kết quả này trong;
[~]$ python /tmp/test.py
letters: set[
['q', 'r']] intersection count: 2
letter1 q
letter1 r
letter1 t
letter2 q
letter2 s
letter2 r
counts1 3 counts2 3
3
Phân tích, 2 là câu trả lời đúng [Q và R là chữ cái duy nhất phổ biến cho cả hai], 3 là số lượng thấp hơn của các giá trị duy nhất.
Đã trả lời ngày 30 tháng 5 năm 2017 lúc 18:48May 30, 2017 at 18:48
1
def commonCharacterCount[s1, s2]:
return sum[ min[s1.count[char], s2.count[char]] for char in [set[s1] & set[s2]]]
Đã trả lời ngày 24 tháng 12 năm 2020 lúc 11:13Dec 24, 2020 at 11:13
1
Tôi đã thay thế đoạn mã ban đầu của bạn
for letter1 in set[s1]:
counts1 += s2.count[letter1]
to:
for letter1 in set[s1]:
v = s2.count[letter1]
print["{0}:{1}".format[letter1, v]]
counts1 += v
Nó xuất ra, nó là chữ cái có số lượng xảy ra:
r:1
q:3
t:0
Nó đúng, chuỗi
from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
5 là QSRQQ và bạn kiểm tra SET [S1] được đặt chứa from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
6 và from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
7 Các số đếm là chính xác. Tương tự, nếu kiểm tra vòng lặp thứ 2, đầu ra là:q:3
r:1
s:1
Do đó số lượng tối thiểu là 4.
Đã trả lời ngày 30 tháng 5 năm 2017 lúc 18:36May 30, 2017 at 18:36
Haifeng Zhanghaifeng ZhangHaifeng Zhang
28.4K19 Huy hiệu vàng74 Huy hiệu bạc119 Huy hiệu đồng19 gold badges74 silver badges119 bronze badges
Thực hiện một số lượng cho mỗi chữ cái, và lấy tối thiểu để tìm hiểu xem có bao nhiêu chữ cái đó là phổ biến cho cả hai chuỗi. Sau đó, tổng hợp điều đó, và đó là câu trả lời của bạn.
from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
0Đã trả lời ngày 30 tháng 5 năm 2017 lúc 18:37May 30, 2017 at 18:37
Sepehr Nazarisepehr NazariSepehr Nazari
3.6954 Huy hiệu vàng11 Huy hiệu bạc17 Huy hiệu đồng4 gold badges11 silver badges17 bronze badges
0
Đây là một cách khác để làm điều đó bằng cách sử dụng không có mô -đun.
from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
1Đã trả lời ngày 30 tháng 5 năm 2017 lúc 18:43May 30, 2017 at 18:43
gold_cygold_cygold_cy
12.8k3 Huy hiệu vàng21 Huy hiệu bạc42 Huy hiệu đồng3 gold badges21 silver badges42 bronze badges
from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
2Đã trả lời ngày 28 tháng 12 năm 2018 lúc 21:41Dec 28, 2018 at 21:41
1
Một cách khác, mặc dù rất muộn ...
from collections import Counter
s2 = 'qsrqq'
s1 = 'qqtrr'
common_letters = Counter[s1] & Counter[s2] # => {'q': 2, 'r': 1}
print[sum[common_letters.values[]]] # => 3
3Đã trả lời ngày 27 tháng 4 năm 2021 lúc 14:27Apr 27, 2021 at 14:27
0Knowledge0Knowledge0Knowledge
7193 Huy hiệu bạc12 Huy hiệu đồng3 silver badges12 bronze badges