描述:
给一个描述街道的字符串S,其中“H”代表一所房子,“-”代表空地,你可以把水箱放在空地上,从附近的房子里收集雨水,房子旁边有水箱,就可以收集自己的雨水
例如:
给定S=“-H-HH--”,可以使用2个水箱收集所有房子的雨水,一个水箱放在第一和第二所房子的中间,另一个放在第三间房子之后,水箱的位置可以表示为“-HTHHT-”,其中“T”代表水箱
public static int minRainBucketsBetweenHouse(String S) {
if (S == null || S.isEmpty()) {
return -1;
}
int len = S.length();
if (S.contains("HHH")) {
return -1;
}
if (len == 1) {
return -1;
}
if ('H' == S.charAt(0) && 'H' == S.charAt(1)) {
return -1;
}
if ('H' == S.charAt(len - 1) && 'H' == S.charAt(len - 2)) {
return -1;
}
S = S.replaceAll("H-H", "hTh");
S = S.replaceAll("-H", "Th");
S = S.replaceAll("H-", "hT");
int tCount = 0;
for (int i = 0; i < S.length(); i++) {
if ('T' == S.charAt(i)) {
tCount++;
}
}
return tCount;
}
网友评论