Problem Statement
Discussions
My Submissions
Virus Outbreak (100 Marks)
In the Martian land faraway, a new virus has evolved and is attacking the individuals at a fast pace. The scientists have figured out the virus composition, V. The big task is to identify the people who are infected. The sample of N people is taken to check if they are POSITIVE or NEGATIVE. A report is generated which provides the current blood composition B of the person.
POSITIVE or NEGATIVE ?
If the blood composition of the person is a subsequence of the virus composition V, then the person is identified as POSITIVE otherwise NEGATIVE.
Example:
Virus Composition, V = coronavirus
Blood Composition of the person , B = ravus
The person in question is POSITIVE as B is the subsequence of the V.
The scientists are busy with their research for medicine and request you to build a program which can quickly figure out if the person is POSITIVE or NEGATIVE. They will provide you with the virus composition V and all the people’s current blood composition. Can you help them?
Answers
Program in Java
import java.util.*;
public class MyClass
{
static boolean check(String v , String p)
{
int v_len = v.length();
int p_len = p.length();
int i = 0, j = 0;
while(j < p_len && i < v_len)
{
if(v.charAt(i) == p.charAt(j))
{
j = j + 1;
}
i = i + 1;
}
if(j == p_len)
{
return true;
}
else
{
return false;
}
}
public static void main(String args[])
{
Scanner Sc = new Scanner(System.in);
System.out.print("Enter Virus Composition : ");
String V = Sc.next();
System.out.print("\nEnter number of people : ");
int N = Sc.nextInt();
for(int i = 1 ; i <= N ; i++)
{
System.out.print("\nEnter Blood Composition of the person : ");
String B = Sc.next();
if(check(V , B))
{
System.out.println("POSITIVE");
}
else
{
System.out.println("NEGATIVE");
}
}
}
}
Output:
Enter Virus Composition : coronavirus
Enter number of people : 3
Enter Blood Composition of the person : abcde
NEGATIVE
Enter Blood Composition of the person : crnas
POSITIVE
Enter Blood Composition of the person : onarous
NEGATIVE