我想知道如何使用"10?01?1"
或'?'
替换1
处的0
字符串。例如,来自字符串"1?0"
- > "110"
&& "100"
。如何解决这个问题?递归?感谢。
" 1?0?1 ...它应该有四种不同的组合。 " 11011"," 11001"," 10011"," 10001"。如何打印所有四种组合?"
答案 0 :(得分:0)
递归调用下一个字符并检测下一个字符是否为?或不。如果是?将其替换为0或1。
答案 1 :(得分:0)
我想知道如何更换字符串,例如" 10?01?1" at'?' 1或0 您可以使用replaceAll()或replace()
替换它实施例
String str= "1?0";
String replcaed=str.replace("?","1");
答案 2 :(得分:0)
当您遇到'?'时,请将其替换为'0'并重复,然后将其替换为'1'并重复使用。
private void permute(String s) {
...
if (s.charAt(i) == '?') {
permute(<replacing '?' with '0'>);
permute(<replacing '?' with '1'>);
}
...
}
答案 3 :(得分:0)
您可以使用此方法获得4种组合,但不是所有8种组合。 因为在这种方法中,当递归发生时,字符串改变而没有'?' ,但它会更新内存中的索引。这就是为什么它只给出四个答案。如果你增加数字,它会给你不同的组合等于数字 公共类递归{
private static void replaceCharacters(char[] inputString, int stringLength, int characterIndex) {
if (characterIndex < stringLength) {
if (inputString[characterIndex] == '?') {
inputString[characterIndex] = '1';
replaceCharacters(inputString, stringLength, characterIndex + 1);
inputString[characterIndex] = '0';
replaceCharacters(inputString, stringLength, characterIndex + 1);
} else {
replaceCharacters(inputString, stringLength, characterIndex + 1);
}
} else {
System.out.println(new String(inputString));
}
}
public static void main(String[] args) {
String testString = "1???";
replaceCharacters(testString.toCharArray(), testString.length(), 0);
}
}
答案 4 :(得分:0)
试试这个
public static void main(String[] args) {
combinations("1?0?1");
}
public static void combinations(String s) {
if(s.contains("?")){
combinations(replace(s, '0'));
combinations(replace(s, '1'));
} else {
System.out.println(s);
}
}
public static String replace(String s, char replacement){
char[] charSeq = s.toCharArray();
int i;
for(i=0; charSeq[i]!='?'; i++);
charSeq[i]=replacement;
return new String(charSeq);
}
输出
10001 10011 11001 11011
答案 5 :(得分:0)
div
没有replaceFirst()
的完整版本答案 6 :(得分:0)
试试这个代码“1 ???”所有组合为:1000,1001,1010,1011,1100,1101,1110,1111 尽可能通过2 ^ 3 = 8种组合。
import java.util.*;
import java.lang.*;
import java.io.*;
class testRecursion {
public static void main(String[] args) {
combinations("1???");
}
public static void combinations(String s) {
if(s.contains("?")){
combinations(replace(s, '0'));
combinations(replace(s, '1'));
} else {
System.out.println(s);
}
}
public static String replace(String s, char replacement){
char[] charSeq = s.toCharArray();
int i;
for(i=0; charSeq[i]!='?'; i++);
charSeq[i]=replacement;
return new String(charSeq);
}
}