民居点亮


/**
* 给定一个Str,只由'X'和'.'组成,X表示墙,不可放灯,无需点亮,.表示居民,可以放灯,需要点亮
* 如果灯放在i位置,可以让i、i-1、i+1三个位置被点亮,返回如果点亮str中所有需要点亮的位置,最少需要几盏灯
*/
public class Light {

public static int minLight(String road) {
char[] str = road.toCharArray();
int index = 0;
int light = 0;
while (index < str.length) {
if (str[index] == 'X') {
index++;
} else { // i -> .
light++;
if (index + 1 == str.length) {
break;
} else {
if (str[index + 1] == 'X') {
index = index + 2;
} else {
index = index + 3;
}
}
}
}
return light;
}

}

/* 如有意见或建议,欢迎评论区留言;如发现代码有误,欢迎批评指正 */
原文地址:https://www.cnblogs.com/laydown/p/13060863.html