In: Computer Science
Write a static method called generateSubstrings that adds all subsets of the letters in its first argument to the ArrayList that is its second argument. For example, generateSubstrings("ABC", result); adds to result the strings: "", "A", "B", "C", "AB", "AC", "BC", "ABC" The order of the strings does not matter. You may use iteration for this problem Use Java
SOURCE CODE:
*Please follow the comments to better understand the code.
**Please look at the Screenshot below and use this code to copy-paste.
***The code in the below screenshot is neatly indented for better understanding.
import java.util.ArrayList;
public class ArrayListSubStrings
{
private static void generateSubstrings(String str, ArrayList<String> result)
{
// take length of string
int n=str.length();
// repeat till 2^n
for(long i=0;i<(1<<n);i++)
{
// take temporary string
String temp="";
for(int j=0;j<n;j++)
{
// generrate the sequance
if( (i & (1<<j))>0)
temp+=str.charAt(j);
}
// add that temporary string to the array list
result.add(temp);
}
}
// test your method
public static void main(String[] args) {
ArrayList<String> result=new ArrayList<String>();
// call the method
generateSubstrings("ABC",result);
// print the output
System.out.println("The substrings are: "+result);
}
}
=======

