Program to display maximum consecutive increasingly ordered substring
Program Plan:
- Create the class “Exercise22_01”.
- In the main() function,
- Read the input object to read the input from user.
- Call the function maxConsecutivesSortedSubstring()to print the maximum ordered substring.
- In the maxConsecutivesSortedSubstring(),
- Initially assign the maximum length of the substring.
- Use for() loop to execute the whole length of the string.
- Check the position of character at “i” and “i-1” and compare the values.
- If it is lesser, assign the “i” to “current”.
- If the condition not satisfies, then increment the length of maximum consecutive length.
- Use for() loop to iterate the string values.
- Check whether the current length of string is less than the largest string.
- If yes, then assign the current element length to largest subsequence element.
- Construct the character sequence using while() loop at the end of the string.
- Return the string.
- Check the position of character at “i” and “i-1” and compare the values.
- In the maxConsecutivesSortedSubstring1(),
- Use the for loop to iterate the whole length of string.
- Check the position of character at “i” and “i-1” and compare the values.
- Return the sorted substring.
- Use the for loop to iterate the whole length of string.
This program reads the input from user and displays the maximum consecutive increasingly ordered substring.
Program:
//Declare the class Exercise22_01
public class Exercise22_01 {
//Declare the main function
public static void main(String[] args) {
//Create the input object
java.util.Scanner input = new
java.util.Scanner(System.in);
//Read the string
System.out.print("Enter a string: ");
String s = input.nextLine();
/*Call the function maxConsecutiveSortedSubstring() to print the maximum consecutive sorted substring*/
System.out.println("Maximum consecutive substring
is " + maxConsecutiveSortedSubstring(s));
}
/*Define the function maxConsecutiveSortedSubstring()*/
public static String
maxConsecutiveSortedSubstring(String s) {
//Declare the array and assign the length of array
int[] maxConsecutiveLength = new int[s.length()];
//Assign the variable as 0
int current = 0;
//Execute the for loop until the condition fails
for (int i = 1; i < s.length(); i++) {
/*Check whether the character is smaller than
the current character stored in string*/
if (s.charAt(i) <= s.charAt(i - 1)) {
//Assign the “i” value to current variable
current = i;
} else {
/*Execute the for loop until the condition fails*/
for (int j = i - 1; j >= current; j--)
//Increment the sequence of length
maxConsecutiveLength[j]++;
}
}
//Assign the length of sequence at index “i”
int currentMaxLength = maxConsecutiveLength[0];
int index = 0;
//Execute the for loop until the length of string
for (int i = 0; i < s.length(); i++) {
//Check whether the condition is true
if (maxConsecutiveLength[i] > currentMaxLength)
{
/*Assign the maximum sequence length to current length */
currentMaxLength = maxConsecutiveLength[i];
//Assign the index position
index = i;
}
}
//Return the substring
return s.substring(index, index + currentMaxLength + 1);
}
//Define the function for the sorted substring
public static String
maxConsecutiveSortedSubstring1(String s) {
//Assign the current length
int currentMaxLength = 1;
//Assign the last index of sorted substring
int lastIndexOfMaxConsecutiveSortedSubstring = 0;
//Assign the possible length
int possibleMaxLength = 1;
//Execute the for loop until it fails
for (int i = 1; i < s.length(); i++) {
//Check the position of the string
if (s.charAt(i) > s.charAt(i - 1)) {
//Check the condition
if
(lastIndexOfMaxConsecutiveSortedSubstri
ng == i - 1) {
/* Add the max consecutive substring*/
currentMaxLength++;
/*Add the index of max consecutive substring*/
lastIndexOfMaxConsecutiveSortedSub
string++;
//If condition not satisfies
} else {
//Increment the length
possibleMaxLength++;
//Check the condition
if (possibleMaxLength >
currentMaxLength) {
/*Assign the possible length to current maximum length*/
currentMaxLength =
possibleMaxLength;
/*Assign the index of the string*/
lastIndexOfMaxConsecutiveSort
edSubstring = i;
possibleMaxLength = 1;
}
}
}
}
//Return the sorted substring
return
s.substring(lastIndexOfMaxConsecutiveSortedSubstr
ing - currentMaxLength + 1,lastIndexOfMaxConsecutiveSortedSubstring + 1);
}
}
Running time complexity:
The above program executes in
Sample Output:
Enter a string: abcabcdgabmnsxy
Maximum consecutive substring is abmnsxy

Program to display maximum consecutive increasingly ordered substring
Program Plan:
- Create the class “Exercise22_01”.
- In the main() function,
- Read the input object to read the input from user.
- Call the function maxConsecutivesSortedSubstring()to print the maximum ordered substring.
- In the maxConsecutivesSortedSubstring(),
- Initially assign the maximum length of the substring.
- Use for() loop to execute the whole length of the string.
- Check the position of character at “i” and “i-1” and compare the values.
- If it is lesser, assign the “i” to “current”.
- If the condition not satisfies, then increment the length of maximum consecutive length.
- Use for() loop to iterate the string values.
- Check whether the current length of string is less than the largest string.
- If yes, then assign the current element length to largest subsequence element.
- Construct the character sequence using while() loop at the end of the string.
- Return the string.
- Check the position of character at “i” and “i-1” and compare the values.
- In the maxConsecutivesSortedSubstring1(),
- Use the for loop to iterate the whole length of string.
- Check the position of character at “i” and “i-1” and compare the values.
- Return the sorted substring.
- Use the for loop to iterate the whole length of string.
This program reads the input from user and displays the maximum consecutive increasingly ordered substring.
Explanation of Solution
Program:
//Declare the class Exercise22_01
public class Exercise22_01 {
//Declare the main function
public static void main(String[] args) {
//Create the input object
java.util.Scanner input = new
java.util.Scanner(System.in);
//Read the string
System.out.print("Enter a string: ");
String s = input.nextLine();
/*Call the function maxConsecutiveSortedSubstring() to print the maximum consecutive sorted substring*/
System.out.println("Maximum consecutive substring
is " + maxConsecutiveSortedSubstring(s));
}
/*Define the function maxConsecutiveSortedSubstring()*/
public static String
maxConsecutiveSortedSubstring(String s) {
//Declare the array and assign the length of array
int[] maxConsecutiveLength = new int[s.length()];
//Assign the variable as 0
int current = 0;
//Execute the for loop until the condition fails
for (int i = 1; i < s.length(); i++) {
/*Check whether the character is smaller than
the current character stored in string*/
if (s.charAt(i) <= s.charAt(i - 1)) {
//Assign the “i” value to current variable
current = i;
} else {
/*Execute the for loop until the condition fails*/
for (int j = i - 1; j >= current; j--)
//Increment the sequence of length
maxConsecutiveLength[j]++;
}
}
//Assign the length of sequence at index “i”
int currentMaxLength = maxConsecutiveLength[0];
int index = 0;
//Execute the for loop until the length of string
for (int i = 0; i < s.length(); i++) {
//Check whether the condition is true
if (maxConsecutiveLength[i] > currentMaxLength)
{
/*Assign the maximum sequence length to current length */
currentMaxLength = maxConsecutiveLength[i];
//Assign the index position
index = i;
}
}
//Return the substring
return s.substring(index, index + currentMaxLength + 1);
}
//Define the function for the sorted substring
public static String
maxConsecutiveSortedSubstring1(String s) {
//Assign the current length
int currentMaxLength = 1;
//Assign the last index of sorted substring
int lastIndexOfMaxConsecutiveSortedSubstring = 0;
//Assign the possible length
int possibleMaxLength = 1;
//Execute the for loop until it fails
for (int i = 1; i < s.length(); i++) {
//Check the position of the string
if (s.charAt(i) > s.charAt(i - 1)) {
//Check the condition
if
(lastIndexOfMaxConsecutiveSortedSubstri
ng == i - 1) {
/* Add the max consecutive substring*/
currentMaxLength++;
/*Add the index of max consecutive substring*/
lastIndexOfMaxConsecutiveSortedSub
string++;
//If condition not satisfies
} else {
//Increment the length
possibleMaxLength++;
//Check the condition
if (possibleMaxLength >
currentMaxLength) {
/*Assign the possible length to current maximum length*/
currentMaxLength =
possibleMaxLength;
/*Assign the index of the string*/
lastIndexOfMaxConsecutiveSort
edSubstring = i;
possibleMaxLength = 1;
}
}
}
}
//Return the sorted substring
return
s.substring(lastIndexOfMaxConsecutiveSortedSubstr
ing - currentMaxLength + 1,lastIndexOfMaxConsecutiveSortedSubstring + 1);
}
}
Running time complexity:
The above program executes in
is
Enter a string: abcabcdgabmnsxy
Maximum consecutive substring is abmnsxy
Want to see more full solutions like this?
Chapter 22 Solutions
Instructor Solutions Manual For Introduction To Java Programming And Data Structures, Comprehensive Version, 11th Edition
Additional Engineering Textbook Solutions
Elementary Surveying: An Introduction To Geomatics (15th Edition)
Management Information Systems: Managing The Digital Firm (16th Edition)
Web Development and Design Foundations with HTML5 (8th Edition)
Thinking Like an Engineer: An Active Learning Approach (4th Edition)
SURVEY OF OPERATING SYSTEMS
Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
- ExoProtect, which is an insurance company, plans to develop the operational database. Write out all requirements for the ER diagram for the ExoProtect Employees’ Computers Database shown below:arrow_forwardSignum Libri (SL) is a publishing company. The SL Operations Database will keep track of the following: For each book SL publishes: a book name, genre, date of publication, and number of pages; For each writer: a unique writer identifier as well as the writer’s name; For each agent: a unique agent identifier as well as the agent’s name; For each editor: a unique editor identifier as well as the editor’s name; Each SL book is written by one writer, and each writer can write many SL books. SL will not keep track of writers who did not write a book for SL. All books written by the same writer have a different book name. However, two writers can write two different books with the same book name. Each writer is represented by one agent. Each agent represents at least one writer, but can represent many. Each book has one editor. Each editor edits at least one book, but can edit many books. Each editor can mentor one or more other editors, but does not have to mentor any. Each editor can…arrow_forward1. Consider the NFA defined by the state diagram below. Follow the algorithm seen in class and in our textbook to construct an equivalent DFA. Please only include the states reachable (in one or more transitions) from the start state. (Your solution can be either the table or the state diagram, or both if you wish.) a ε, b b a a 92 91 8 93 b a, barrow_forward
- - a) Answer these Theoretical Questions: 1. Explain the rule of thumb for the Big O. Provide at least one example of applying each rule. 2. What is the Big O of each of the following functions? a) (n + 1)³/n b) (n³ + logзn) ³/n c) n + 100n³ + n d) 3n+ 100n3 + 3n * e) n 3n+ n * 33n 3. Describe an algorithm for finding the occurrence of the max element in an array. Analyze the complexity of the algorithm. 4. What is Divide-and-Conquer? What is the difference between Divide-and-Conquer and Dynamic Programming? What are the benefits of using one over another if any? 5. Is it possible to design an algorithm for finding the max element in a list using Divide-and-Conquer? What is the complexity of this algorithm? Hint: In this approach, the initial array is divided into two halves... b) Programming assignment: Implement initiative / naïve method to find a max element in an array. Implement the method that uses the Divide-and-Conquer approach to find the max element in an array. Test both…arrow_forward9. Given the following Boolean Function: F(P, Q, R) = PQ+QR+PR F(P,Q,R) (i) Derive the canonical SOP (sum of minterms) for F. (ii) Derive the canonical POS (product of maxterms) for F. (iii) Draw the truth table, clearly marking which rows are minterms of F and which rows correspond to maxterms of F. 10) For n Boolean variables, how many distinct Boolean functions exist? Give the answer as a function of n and briefly justify it.arrow_forwardPlease Show an Example in R: Find (or invent) some data (not from the “Data” directory supplied with EssentialR) and import it into R. (It is not a bad idea to include a commented line with units for each variable in your .txt or.csv file). a) What did you have to do to “clean it up” so it would read in? b) Are you satisfied with the console output of summary(yourdata)? Did all the variables import in the way (format) you thought they should? c) Include the output of summary(yourdata) and head(yourdata).arrow_forward
- 7. Convert Standard POS form to Canonical POS form. (A+B)(A+ C)(B+C) 8. Given that F(a, b, c, d) = Σm(1, 3, 4, 6, 8, 9, 12), (i) Write the product of maxterms (canonical POS) for F. (ii) Write the canonical SOP and canonical POS for F.arrow_forward1. Evaluate the following expression when A = 1, B = O, C = 1, D = 0 F = AB + CD + (A + B)C 2. Find F, the complement of function F, Write your answer using overbars. F(W, X, Y, Z) = WX + YZ +XZ 3. Determine the truth table for the function F = XY+XZ 4. Show with a truth table that the following is true: X(YZ) = XY+XZarrow_forward. 6. Find the dual of the Boolean expressions. (swap + with and O with 1; do not complement variables). a) A + BC b) (X + Y)(X + Z) c) P+Q+ RSarrow_forward
- 5. Simplify the following Boolean expression. Show each simplification step and identity used. a) ABAB + ABC b) (MN)(M + P) + MParrow_forwardBoolean Algebra HW #4 Show all intermediate steps (truth tables, algebraic steps, and justifications such as identities or theorems) for full credit. 1. Evaluate the following expression when A = 1, B = O, C = 1, D = 0 F = AB + CD + (A+B)C 2. Find F, the complement of function F, Write your answer using overbars. F(W,X,Y,Z) = WX+YZ+XZ 3. Determine the truth table for the function F=XY+XZ 4. Show with a truth table that the following is true: X(Y+Z) = XY+XZ 5. Simplify the following Boolean expression. Show each simplification step and identity used. a) AB + AB + ABC b) (M+N)(M + P) + MP 6. Find the dual of the Boolean expressions. (swap + with and O with 1; do not complement variables). a) ABC b) (X + Y)(X + Z) c) P+Q+ RS 7. Convert Standard POS form to Canonical POS form. • (A+B)(Ā + C) (B+C) 8. Given that F(a, b, c, d) = Em(1, 3, 4, 6, 8, 9, 12) (i) Write the product of maxterms (canonical POS) for F. (ii) Write the canonical SOP and canonical POS for F.arrow_forwardConsider the following statement, which is intended to assign the value of the expression, the variable result Assume that the double variables. x-ya and b have been properly declared and initialized. (xy) to double result = missing code /: 17 Mark for Review Which of the following can replace / missing code / so that the statement works as intended? Math.sqrt((x + y) 2/ Math.abs(a, b)) Math.sqrt((x + y) 2/ Math.abs(a - b)) Math.sqrt(Math.pow(x + y, 2) / Math. abs(a, b)) Math.sqrt(Math.pow(x + y, 2) / Math.abs (a - b))arrow_forward
- Microsoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
- Programming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:CengageProgramming with Microsoft Visual Basic 2017Computer ScienceISBN:9781337102124Author:Diane ZakPublisher:Cengage LearningEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT




