题目描述
新学期开始了,小明提早到自习教室帮同学占座,一本书可以占两个相邻座位,小明只想占一整排座位,求总共需要几本书来占满这一排空余座位?
输入
题目有多组测试数据
先输入一个数据n,表示这一排总共有多少个座位,再输入一行座位状态,"*"为不能占座,"@"为可以占座。
输出
输出需要几本书占座,如果没有座位可以来占座,则输出"Oh no!"
样例输入
1 * 6 @**@@@
样例输出
Oh no! 3
【AC代码】:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
String s = sc.next();
int sum = 0;
int k = 0;
for (int i = 0; i < n; i++) {
if (s.charAt(i) == '@') {
if (k == 0) {
sum++;
k = 1;
} else if (k == 1)
k = 0;
}
if (s.charAt(i) == '*')
k = 0;
}
if (sum == 0)
System.out.println("Oh no!");
else
System.out.println(sum);
}
}
}

本文介绍了一道关于使用书籍占座的算法题,通过分析座位的状态(可用或不可用),计算出所需书籍的数量来连续占座。如果无法占座则输出特定提示。文章附带了完整的Java代码实现。
1576

被折叠的 条评论
为什么被折叠?



