Implemented and tested algorithm.
This commit is contained in:
parent
a66a462ced
commit
9c577f1330
@ -33,9 +33,6 @@ Algorithm Design Block
|
|||||||
return counter, comps
|
return counter, comps
|
||||||
|
|
||||||
Big-O Analysis: (Based on Implementation)
|
Big-O Analysis: (Based on Implementation)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
package Assignments.A2;
|
package Assignments.A2;
|
||||||
|
|
||||||
@ -50,6 +47,15 @@ import java.util.Scanner;
|
|||||||
*/
|
*/
|
||||||
public class Substrings {
|
public class Substrings {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Substrings program = new Substrings();
|
||||||
|
program.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String text;
|
||||||
|
private int subStringCount;
|
||||||
|
private int comparisons;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used as the main sentential loop and loops until the exit option is selected.
|
* Used as the main sentential loop and loops until the exit option is selected.
|
||||||
*
|
*
|
||||||
@ -73,7 +79,19 @@ public class Substrings {
|
|||||||
* @param option the option that was chosen.
|
* @param option the option that was chosen.
|
||||||
*/
|
*/
|
||||||
private void executeOption(int option) {
|
private void executeOption(int option) {
|
||||||
performAlgorithm();
|
if (option == 1) {
|
||||||
|
this.text = this.getString();
|
||||||
|
} else {
|
||||||
|
if (this.text == null) {
|
||||||
|
System.out.println("Please specify a text to perform the algorithm.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.performAlgorithm();
|
||||||
|
System.out.println("Input string: " + this.text);
|
||||||
|
System.out.println("# of substrings: " + this.subStringCount);
|
||||||
|
System.out.println("# of comparisons: " + this.comparisons);
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,7 +101,21 @@ public class Substrings {
|
|||||||
* @postcondition the results are generated.
|
* @postcondition the results are generated.
|
||||||
*/
|
*/
|
||||||
private void performAlgorithm() {
|
private void performAlgorithm() {
|
||||||
|
this.subStringCount = 0;
|
||||||
|
this.comparisons = 0;
|
||||||
|
char[] values = this.text.toLowerCase().toCharArray();
|
||||||
|
|
||||||
|
for (int i = 0; i < this.text.length(); i++) {
|
||||||
|
if (values[i] == 'a') {
|
||||||
|
for (int j = i+1; j < this.text.length(); j++) {
|
||||||
|
if (values[j] == 'b') {
|
||||||
|
subStringCount++;
|
||||||
|
}
|
||||||
|
comparisons++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
comparisons++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -124,6 +156,28 @@ public class Substrings {
|
|||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a string and returns it. If the input is not valid it loops until valid.
|
||||||
|
*
|
||||||
|
* @precondition none
|
||||||
|
* @postcondition none
|
||||||
|
* @return a user-input text string.
|
||||||
|
*/
|
||||||
|
private String getString() {
|
||||||
|
System.out.println("Specify a text to check number of substrings.");
|
||||||
|
System.out.print("Text: ");
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
String input = sc.nextLine();
|
||||||
|
|
||||||
|
while (input == null || input.isEmpty()) {
|
||||||
|
System.out.println("Please specify a valid text to check substrings.");
|
||||||
|
System.out.print("Text: ");
|
||||||
|
input = sc.nextLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets user input to a number. A prompt must be provided prior to running this method.
|
* Gets user input to a number. A prompt must be provided prior to running this method.
|
||||||
* If the input was not an integer/(unable to be autoboxed), returns -1.
|
* If the input was not an integer/(unable to be autoboxed), returns -1.
|
||||||
@ -133,7 +187,7 @@ public class Substrings {
|
|||||||
*
|
*
|
||||||
* @return the integer input, if invalid -1.
|
* @return the integer input, if invalid -1.
|
||||||
*/
|
*/
|
||||||
protected int getIntegerInput() {
|
private int getIntegerInput() {
|
||||||
Scanner sc = new Scanner(System.in);
|
Scanner sc = new Scanner(System.in);
|
||||||
try {
|
try {
|
||||||
String textInput = sc.nextLine();
|
String textInput = sc.nextLine();
|
||||||
|
Loading…
Reference in New Issue
Block a user