您的位置:首页 > 其它

网易网考题“9和g”

2016-03-25 21:46 363 查看
一个字符串中9和g模糊,如果同等对待,输出所有可能性

public class Solution {

public static String toFullBinaryString(int num,int size) {
char[] chs = new char[size];
for(int i = 0; i < size; i++) {
chs[size - 1 - i] = (char)(((num >> i) & 1) + '0');
}
return new String(chs);
}

public ArrayList<String> getPossibleList(String input){
input = input.replace("9", "g");
ArrayList<String> result = new ArrayList<String>();
ArrayList<Integer> flag = new ArrayList<Integer>();
int j = 0;
for(int i=0;i<input.length();i++){
if(input.charAt(i) == 'g'){
flag.add(i);
}
}

int count = flag.size();
for(int i=0;i<Math.pow(2, count);i++){
String binary = toFullBinaryString(i,count);
StringBuilder tmp = new StringBuilder(input);
for(int k=0;k<binary.length();k++){
if(binary.charAt(k) == '1'){
tmp.deleteCharAt(flag.get(k).intValue());
tmp.insert(flag.get(k).intValue(),"9");
}
else
continue;
}
result.add(tmp.toString());
}
return result;
}

public static void main(String[] args){
String input = "123g97g";
Solution sl = new Solution();
ArrayList<String> result = sl.getPossibleList(input);
for(String output : result){
System.out.println(output);
}
System.out.println("Total : " + result.size());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: