pull/3/head
Leo 5 years ago
parent e7c5236a4e
commit 9d02484736

@ -37,6 +37,52 @@ public class PrintStr {
} }
static class Subs1 {
public static List<String> subs(String string) {
List<String> list = new ArrayList<>();
if (string.length() == 0 || string == null) {
return list;
}
char[] chars = string.toCharArray();
String path = "";
p(chars,0,list,path);
return list;
}
private static void p(char[] chars, int i, List<String> list, String path) {
if (i == chars.length) {
list.add(path);
return;
}
p(chars, i + 1, list, path);
p(chars, i + 1, list, path+String.valueOf(chars[i]));
}
}
static class Subs2 {
public static List<String> subs(String string) {
List<String> list = new ArrayList<>();
if (string.length() == 0 || string == null) {
return list;
}
char[] chars = string.toCharArray();
String path = "";
p(chars, 0, list, path);
return list;
}
private static void p(char[] chars, int i, List<String> list, String path) {
if (i == chars.length) {
list.add(path);
return;
}
p(chars, i + 1, list, path);
p(chars, i + 1, list, path + String.valueOf(chars[i]));
}
}
/** /**
* *
*/ */
@ -119,7 +165,7 @@ public class PrintStr {
} }
public static void main(String[] args){ public static void main(String[] args){
String str = "abcc"; String str = "abcc";
List<String> subs = Subs.subs(str); List<String> subs = Subs2.subs(str);
System.out.println(subs.toString()); System.out.println(subs.toString());
List<String> subNoRepeat = SubNoRepeat.subNoRepeat(str); List<String> subNoRepeat = SubNoRepeat.subNoRepeat(str);
System.out.println(subNoRepeat.toString()); System.out.println(subNoRepeat.toString());

@ -35,13 +35,58 @@ public class ReverseStackUsingRecursive {
} }
static class Code1 {
public static void reverse(Stack<Integer> stack) {
if (stack.isEmpty()) {
return;
}
Integer last = f(stack);
reverse(stack);
stack.push(last);
}
private static int f(Stack<Integer> stack) {
Integer value = stack.pop();
if ((stack.isEmpty())) {
return value;
}
int f = f(stack);
stack.push(value);
return f;
}
}
static class Code2 {
public static void reverse(Stack<Integer> stack) {
if (stack.isEmpty()) {
return;
}
int last = f(stack);
reverse(stack);
stack.push(last);
}
private static int f(Stack<Integer> stack) {
Integer value = stack.pop();
if (stack.isEmpty()) {
return value;
}
int last = f(stack);
stack.push(value);
return last;
}
}
public static void main(String[] args){ public static void main(String[] args){
Stack<Integer> stack = new Stack<>(); Stack<Integer> stack = new Stack<>();
stack.push(1); stack.push(1);
stack.push(2); stack.push(2);
stack.push(3); stack.push(3);
stack.push(4); stack.push(4);
Code.reverse(stack); Code2.reverse(stack);
System.out.println(stack); System.out.println(stack);
} }

Loading…
Cancel
Save