厨师在一张纸上写了一些文字,现在他想知道文字上有多少洞。什么是洞?如果你把纸想象成平面,把字母想象成平面上的曲线,那么每一个字母把平面分成若干区域。例如,字母"A"、"D"、"O"、"P"、"R"划分平面分成两个区域,所以我们说这些字母每个都有一个洞。同样,字母"B"有两个孔像"C"、"E"、"F"、"K"这样的字母没有孔。我们说文本中的孔数等于文本字母中的孔总数。帮助厨师确定数量文字上有洞。
为什么嵌套循环不单独添加值,而不是将所有值添加在一起?
public class Practice{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int totalnumber = sc.nextInt();
String[] noString = new String[totalnumber];
for(int i = 0; i < totalnumber; i++){
//System.out.println("Enter the word for " + i);
noString[i] = sc.next();
}
int totalHole = 0;
int[] total = new int[totalnumber];
char[] singleHole = {'A','Q','R','O','P','D'};
char B = 'B';
int counter = 0;
for(int a = 0; a < totalnumber; a++){
for(int i = 0; i < noString[counter].length();i++){
for(int j = 0; j < singleHole.length; j++){
if(noString[a].charAt(i) == singleHole[j]){
totalHole = totalHole + 1;
}
}
if(noString[a].charAt(i) == B){
totalHole = totalHole + 2;
}
}
counter = counter + 1;
total[a] = totalHole;
System.out.println(total[a]);
}
}
}
for(int a = 0; a < totalnumber; a++){
int totalHole = 0;
...
}
每次启动外循环时,都需要将totalHole
重置为0。最好的方法是在循环中移动它的声明。