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
Write the definition of a class clock. the class has no constructors and three instance variables. one is of type int called hou
expeople1 [14]
<span>The definition of a class clock. the class has no constructors and three instance variables. one is of type int called hours, initialized to 12, another is of type boolean called isticking, and the last one is of type integer called diff. 
</span><span>
public class Clock

{private int hours = 12;
private boolean isTicking;
private Integer diff;}</span>
4 0
3 years ago
What is the assignment operator?
cestrela7 [59]
I think hahahahaha Answer 1
4 0
3 years ago
"which type of network connects smart devices or consumer electronics within a range of about 30 feet (10 meters) and without th
Dimas [21]
The answer is PAN (Personal Area Network)

With the simple reference to Personal, this kind of network serves one individual rather than several users. It is an interconnection of IT devices within a range of an individual person. It could be used to sync data from a portable device like a PDA to a PC or a desktop computer or transfer data wirelessly to a printer.

 

 

 

 

 






7 0
3 years ago
How would you compare and contrast the impact of the printing press with the impact of the internet?
Ilia_Sergeevich [38]
<span>The impact of the printing press with the impact of the internet is that </span>internet is an easy access compared with the printing press. Changes affect society, there are more ways to access info today through the internet.  internet spreads information faster and can be shared quickly.  
4 0
3 years ago
In an interview, an appropriate response to "What is an example of one of your
Vilka [71]

Answer:

"I tend to struggle with __________, because _______________.

Explanation:

For exanple:

"I tend to struggle with my anger, because I grew up in a harsh enviroment."

or

"A weakness of mine would be my self image. I was often bullied as a kid."

3 0
3 years ago
Read 2 more answers
Other questions:
  • Your organization will be handling market trades. You will be required to verify the identify of each customer who is executing
    8·1 answer
  • Write a program that reads a list of scores and then assigns grades python
    9·1 answer
  • Functions that are built-in into PHP to perform some standard operations.
    15·1 answer
  • What are the characteristics of a severe storm
    12·1 answer
  • Write a java program that prompts the user to input the elapsed time for an event in hours, minutes, and seconds. The program th
    13·1 answer
  • Looking for friends, anyone up for it?
    12·2 answers
  • Which memory can be removed from motherboard? RAM OR ROM?​
    11·1 answer
  • Instruction: Decide what the total marketing budget will be, and make a list of at least four things you will spend money on and
    15·1 answer
  • When we look for errors inside of our code on our own or with a partner , what is that called?
    9·2 answers
  • What are the benefits and drawbacks of a desktop utilising virtualisation and a server?
    12·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!