128k views
0 votes
8.17 Lab: Strings of a Frequency Write a program that reads whitespace delimited strings (words) and an integer (freq). Then, the program outputs the strings from words that have a frequency equal to freq in a case insensitive manner.

1 Answer

3 votes

Answer:

def occurencesOfWords(words,freq):

frequency_dictionary={}

matched_frequency_words=[]

for i in range(len(words)):

counter=1

a=words[i].lower()

for j in range(len(words)):

if(i==j):

continue

b=words[j].lower()

if(a==b):

counter+=1

frequency_dictionary[words[i]]=counter

for key in frequency_dictionary:

if(frequency_dictionary[key]==freq):

matched_frequency_words.append(key)

return matched_frequency_words

if __name__=='__main__':

user_input=input()

freq=int(input())

words=user_input.split(" ");

required_words=occurencesOfWords(words,freq)

for s in required_words:

print(s)

Step-by-step explanation:

  • Inside the occurencesOfWords function, initialize a frequency_dictionary that is used to store the string and the frequency of that specific string .
  • matched_frequency_words is an array that is used to store each string whose frequency matches with the provided frequency
  • Run a nested for loop up to the length of words and inside the nested for loop, skip the iteration if both variables i and j are equal as both strings are at same index.
  • Increment the counter variable, if two string are equal.
  • Loop through the frequency_dictionary to get the matching frequency strings .
  • Finally test the program inside the main function.
User Rodrick
by
5.1k points