我正在处理以下CodeChef question:
厨师在一张纸上写了一些文字,现在他想知道如何 文中有很多漏洞。什么是洞?如果你想到这篇论文 作为平面和一个字母作为平面上的曲线,然后每个字母 将飞机划分为区域。例如字母" A"," D"," O", " P"," R"把飞机分成两个区域,所以我们说这些字母 每个都有一个洞。同样,字母" B"有两个洞和字母 例如" C"," E"," F"," K"没有洞。我们说的数量 文本中的孔等于字母中的孔总数 的文字。帮助Chef确定文本中有多少个孔。
输入
第一行包含单个整数T <= 40,测试次数 案例。 T测试案例如下。每个测试用例的唯一一行包含一个 非空文本仅由英文字母的大写字母组成。 文本的长度小于100.没有任何空格 输入。
输出
对于每个测试用例,输出包含数字的单行 相应文字中的洞。
示例
输入:
2
CODECHEF
DRINKEATCODE输出:
2
5
我提交以下代码,但法官一直显示错误答案(WA)。有什么建议吗?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class test {
static short[] srr=new short[41];
public static short getHoles(String st){
short holes=0;
for (int i = 0; i < st.length(); i++) {
char c= st.charAt(i);
if(c=='A') holes++;
if(c=='D') holes++;
if(c=='P') holes++;
if(c=='O') holes++;
if(c=='R') holes++;
if(c=='Q') holes++;
if(c=='B'){
holes++;
holes++;
}
}
return holes;
}
public static void main(String[] args) throws IOException {
BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
short cases;
String stt= s.readLine();
cases=Short.parseShort(stt);
String temp;
short t;
for (int i = 0; i < cases; i++) {
temp=s.readLine();
t = getHoles(temp);
srr[i]=t;
}
for (int i = 0; i< 45; i++) {
if(srr[i]==0) break;
System.out.println(srr[i]);
}
}
}
答案 0 :(得分:1)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Letter {
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
InputStreamReader is= new InputStreamReader(System.in);
BufferedReader br= new BufferedReader(is);
int n= Integer.parseInt(br.readLine());
for(int i=0;i<n;i++) {
int holes=0;
String s= br.readLine();
char[] ch= s.toCharArray();
for(int j=0;j<ch.length;j++) {
if(ch[j]=='A'||ch[j]=='D'||ch[j]=='O'||ch[j]=='Q'||ch[j]=='P'||ch[j]=='R') {
holes= holes+1;
}
else if(ch[j]=='B') {
holes=holes+2;
}
else {
holes=holes+0;
}
}
System.out.println(holes);
}
}
}
答案 1 :(得分:0)
在这部分
$scope.apply()
如果你的单词有0个洞,你就不会说0。
试试这个
$(window).scroll(function (event) {
var scroll = $(window).scrollTop();
console.log(scroll);
if(scroll>500 || scroll==undefined){
$scope.showUpArrow = false;
}else{
$scope.showUpArrow = true;
}
$scope.$apply();
});
答案 2 :(得分:0)
for (int i = 0; i< 45; i++) {
if(srr[i]==0) break;
System.out.println(srr[i]);
}
对于零孔的输入字符串,您将离开for循环。 输入
2
EEEE
CODECHEF
什么都不打印。
由于除了主要内容之外,您不能在任何地方使用srr
,因此您可以移除静态并将其放入主方法中。
cases
表示srr
需要多大,以便您可以使用它初始化srr
并将for循环更改为
for (int i = 0; i< cases; i++) {
System.out.println(srr[i]);
}