1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
kirza4 [7]
3 years ago
10

Dr. Watson has been kidnaped! Sherlock Holmes was contacted by the kidnapper for ransom. Moments later he received a message fro

m Dr. Watson's phone. The message contained three random strings. Sherlock being Sherlock, was able to deduce immediately that Dr. Watson was trying to give a hint about his location. He figured out that the longest common subsequence between the 3 words is the location. But since it was too easy for him, he got bored and asked you to find out what the actual location is. Your task is to find the longest common subsequence from the 3 given strings before it is too late. A subsequence is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements. For instance, given a sequence "drew"; "d", "w", "de", "drw", "drew" are all examples of valid subsequences (there are also others), while "er", "wdre" are not. Design a dynamic programming algorithm which takes three input sequences X, Y, and Z, of lengths m, n, and p, respectively, and returns their longest common subsequence. For full marks your algorithm should run in (mnp) time. Note that W is a common subsequence of X, Y, and Z if and only if W is a subsequence of X, W is a subsequence of Y, and W is a subsequence of Z.
Required:
Describe the set of subproblems that your dynamic programming algorithm will consider.
Computers and Technology
1 answer:
adelina 88 [10]3 years ago
8 0

Answer:

please mark me brainlist

Explanation:

This algorithm works for n number of strings in python3

Input:

83217

8213897

683147

Output:

837

from itertools import product

import pdb

import numpy as np

def neigh(index):

N = len(index)

for ri in product((0, -1), repeat=N):

if not all(i == 0 for i in ri):

yield tuple(i + i_rel for i, i_rel in zip(index, ri))

def longestCommonSubSequenceOfN(sqs):

numberOfSequences = len(sqs); # to know number of sequences

lengths = np.array([len(sequence) for sequence in sqs]); # to know length of each sequences placed in # array

incrLengths = lengths + 1; # here we are taking no .of sequences +1

lengths = tuple(lengths); # making lengths into tuple to make it mutable

inverseDistances = np.zeros(incrLengths);

ranges = [tuple(range(1, length+1)) for length in lengths[::-1]]; # finding ranges from 1 to each lengths

for tupleIndex in product(*ranges):

tupleIndex = tupleIndex[::-1];

neighborIndexes = list(neigh(tupleIndex)); # finding neighbours for each tupled index value and # store them in list

operationsWithMisMatch = np.array([]); # creating array which are miss matched

 

for neighborIndex in neighborIndexes:

operationsWithMisMatch = np.append(operationsWithMisMatch, inverseDistances[neighborIndex]);

#appending newly created array with operations miss match and inverseDistances

operationsWithMatch = np.copy(operationsWithMisMatch);

# copying newly generated missmatch indexs

operationsWithMatch[-1] = operationsWithMatch[-1] + 1;

# incrementing last indexed value

chars = [sqs[i][neighborIndexes[-1][i]] for i in range(numberOfSequences)];

# finding a string(chars) with neighbour indexes and checking with other sequences

if(all(elem == chars[0] for elem in chars)):

inverseDistances[tupleIndex] = max(operationsWithMatch);

else:

inverseDistances[tupleIndex] = max(operationsWithMisMatch);

 

subString = ""; # resulted string

mainTupleIndex = lengths; # copying lengths list to mainTupleIndex

while(all(ind > 0 for ind in mainTupleIndex)):

neighborsIndexes = list(neigh(mainTupleIndex));

#generating neighbour indexes with main tuple index in form of list

anyOperation = False;

for tupleIndex in neighborsIndexes:

current = inverseDistances[mainTupleIndex];

if(current == inverseDistances[tupleIndex]): # comparing indexes in main tuple index and inverse #distance tuple index

mainTupleIndex = tupleIndex;

anyOperation = True;

break;

if(not anyOperation): # if anyoperation is False then we are generating sunString

subString += str(sqs[0][mainTupleIndex[0] - 1]);

mainTupleIndex = neighborsIndexes[-1];

return subString[::-1]; # reversing resulted string

sequences = ["83217", "8213897", "683147"]

print(longestCommonSubSequenceOfN(sequences)); #837

You might be interested in
A(n) ________ moves over the spinning platters to retrieve data from the hard disk.
larisa86 [58]
<span>read/write heads should be the answer (:</span>
3 0
3 years ago
Modify your program from Learning Journal Unit 7 to read dictionary items from a file and write the inverted dictionary to a fil
Bond [772]

Answer:

Following are the code to this question:

import ast as a #import package ast

d1= {}#defining an empty dictionary  

def invert_dictionary(d1):#defining a method invert_dictionary

   i = dict()#defining variable i that hold dict method  

   for k in d1:#defining for loo to check dictionary value

       val = d1[k]#defining val variable to holds dictionary key values

       for val1 in val:#defining another for loop to hold value of dictionary and inverse it

           if val1 not in i:#defining if block to check value

               i[val1] = [k]#hold key value

           else:#defining else block

               i[val1].append(k)#add value in dictionary

   return i#return inverse value

with open("dict_items.txt", "r") as data:#use open method to add a list as a file

   dict_item = a.literal_eval(data.read())#defining a variable that covert item as a text string in the input file  

   '''covert input string into dictionary item'''

   e_val = input("Please enter a value")#defining variable e_val to input value

   dict_item['4']=str(e_val)#holding value in dictionary

   dict_item['5']='e'#holding value in dictionary

   dict_item['6']='f'#holding value in dictionary

   '''Invert the dictionary value '''

   invert_data =invert_dictionary(dict_item)#defining variable to holding method value

'''calculating the format of each item of inverted dictionary as a text string output file.'''

f_data = {i:str(j[0]) for i,j in inverted_data.items() }#defining f_data to hold coverted value

import json as j#import package

with open('out_put.txt', 'w') as file:#use open method to open file

   file.write(j.dumps(f_data))#add value

Explanation:

In the above-given code has four parts which can be defined as follows:

In the first part, a method invert_dictionary is defined that accepts a dictionary, and defines two for loops in which the second loop uses a conditional statement to convert the inverse form and return its value, and after inverse it use the open method to add a list as a file, and defining a variable that covert item as a text string in the input file.

In the second step, a variable e_val is declared for input value , and use the dict_item variable to holding dictionary  value, and call the method and hold its value.

In the third and fourth step it calculating the format of each item of inverted dictionary as a text string output file.

6 0
3 years ago
From the standpoint of the governing bodies of .com, why is it important that owners of individual domains maintain authoritativ
mixer [17]

Answer:

Explanation:

A subdomain is really important on the internet, we can categorize our blog, e-commerce or simple informative website, for example, if we want to have a blog and e.commerce of the same topic, we can have a subdomain for each website, if we separate our website, and we administrate our content is a good signal for SEO, we could have more promotion in search engine.

4 0
4 years ago
Come up with a system, using only
masha68 [24]

Explanation:

material

3 balões de erlenmeyer. .balanca

funil. . carbonato de

. rolha

. tubo abdutor

. seringa

8 0
3 years ago
Drag each label to the correct location. Each label can be used more than once. Match the device to the port through which it co
son4ous [18]

Answer:

Mouse - USB

Monitor - display port, HDMI, and thunderbolt port

External hard drive - USB and thunderbolt port

Flash drive - USB

Explanation:

A computer mouse is an input device used to interact with a computer system. It connects with the computer through the USB port.

A Monitor is an output device that is used to display information on a computer system. It can be connected to the system through the display ports, HDMI, and the thunder port.

The External hard drive is a storage device that holds data for a long period of time. It has adapters to connect to the computer through the USB ports or thunderbolt ports. The flash drive is similar in function to the hard drive but small in size and storage space. It only connects with the computer through USB ports.

5 0
3 years ago
Other questions:
  • According to your course, two benefits of a cloud-based system are_ and_
    12·1 answer
  • What is TCP/IP's Transport layer's primary duty?
    8·1 answer
  • Open a command prompt on PC1. Issue the command to display the IPv6 settings. Based on the output, would you expect PC1 to be ab
    7·1 answer
  • Search engines are used to find a specific entry in a database.<br><br> True or false?
    9·2 answers
  • When you're working with a word processing document and you press the del key, what happens?
    5·1 answer
  • John wants to share resources and move a large volume of data quickly over the Internet. John should use which of the following
    9·1 answer
  • What is one purpose of an essay’s conclusion paragraph?
    13·1 answer
  • 3) Prompt the user for a 3-digit number, and the output should be the magical #, which is formed with each digit shifted to the
    13·1 answer
  • Katrina needs to send her database to colleagues, but she does not want them to access anything except the
    8·1 answer
  • Why might a programmer want to define his or her own functions? What are some potential disadvantages? How might new functions m
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!