मैं कुछ प्रश्नों को हल करने की कोशिश कर रहा हूं, भले ही तर्क बहुत सीधा लगता है, मैं एक संभावित समाधान बनाने में सक्षम नहीं हूं।

2 स्ट्रिंग्स स्ट्र और वर्ड को देखते हुए, आपको यह पता लगाना होगा कि आप उस दिए गए स्ट्रिंग से कितने शब्द बना सकते हैं।

इनपुट: str = "यह एक परीक्षण स्ट्रिंग है" शब्द = "tsit", आउटपुट: 2

व्याख्या: दिए गए str में 4 t's 4 s 3 i's हैं, जिनके द्वारा आप केवल 2 "tsit" बना सकते हैं।

इनपुट: str = "यहां हैशेडइन टेक्नोलॉजीज है" शब्द = "न्यूरॉन्स" आउटपुट: 0

व्याख्या: चूँकि आपके पास str में 'u' नहीं है। इस प्रकार आप "न्यूरॉन्स" शब्द नहीं बना सकते।

मैं डिक्शनरी लॉजिक का उपयोग करने की कोशिश कर रहा था, जब तक कि कोई भी कैरेक्टर काउंट शून्य न हो जाए, लेकिन मैं इसे कोड में कैसे डालूं?

def freq(s, word):
s = s.lower()
aux_s = {}
aux_word = {}
for i in s:
    aux_s[i] = aux_s.get(i, 0) + 1
for i in word:
    aux_word[i] = aux_word.get(i, 0) + 1
count, ans = 0, float('inf')
for i,val in aux_s.items():
    if i in aux_word:
        pass
0
Mist 23 अक्टूबर 2020, 10:25

2 जवाब

सबसे बढ़िया उत्तर

चूँकि आपके उदाहरण के अनुसार मामला कोई मायने नहीं रखता,

str = "This is a test string".lower()
word = "tsit"
ans = len(str)
for i in word:
    ans = min(ans, str.count(i)//word.count(i))
print(ans)
1
Abhinav Mathur 23 अक्टूबर 2020, 10:30

मैंने समाधान में शब्दकोश का उपयोग किया है, मैंने आपके द्वारा उपयोग किए गए तर्क पर थोड़ा सा बदलाव किया है।

import sys

test_str = "This is a test string"
test_str = test_str.lower()
word = "tsit"

res = {} 
word_count = {}

# loop to count frequency of all the characters in word
for keys in word:
  if keys != ' ':
    word_count[keys] = word_count.get(keys, 0) + 1

# loop to count frequency of all the characters in string
for keys in test_str: 
  if keys != ' ':   # if the char is space then ignore it
    res[keys] = res.get(keys, 0) + 1  # increment the count of the character if the character already exists

# assigning ans a max value
ans = sys.maxsize


for keys in word_count:
    if keys in res:
        a = res[keys]    #checking if the key exists in the res or not
    else:
        ans = 0   # if the char does not exist in the string then ans = 0
        break
    b = word_count[keys]
    n = a//b
    if n < ans:   # finding the lowest of the requirement
        ans = n   # assigning it to the answer
      
print(ans)   # print the answer 
0
Aditya Sharma 26 अक्टूबर 2020, 11:42