作为输入,我有一个只包含“0”的字符串对象。
输入的示例。String word = "00000"
问题是将此字符串转换为另一个字符串作为输出。
转换是在某些特定位置将某些“0”替换为“1”,导致每个“0”都与至少一个“1”相邻。
一些例子:
input | output
0000 0101
00000 01001
000000 010010
0000000 0100101
00000000 01001010
正如我们所看到的,输出满足条件,每个“0”都与至少一个“1”相邻。
第二个条件是我们必须使用最小数'1'。
经过一些工作,我意识到我们可以知道应该替换0值的“1”的最小数。
该公式由 getMinNumber(字符串字)方法表示。
这是我所做的。
public class TestUtilities {
public static void main( String[] args ) {
String [] words ={"0000","00000","000000","0000000"} ;
for (String str :words) {
System.out.println(transform(str));
}
}
private static String transform( String word ) {
int min = getMinNumber(word);
//////
//Some processing Here
/////
return "";
}
public static int getMinNumber(String word) {
int min;
if (word.length() % 3 == 0) {
min = word.length() / 3;
} else {
min = (word.length() / 3) + 1;
}
return min;
}
}
如图所示,我离开了处理部分,因为我找不到最合适的算法。通常,我应该每三个0替换一个0,但它不适用于每个单词。
我正在寻找一个可以处理任何单词的解决方案。
函数式编程
慕妹3242003
相关分类