赞
踩
题目描述:
停车场有一横排车位,0代表没有停车,1代表有车。至少停了一辆车在车位上,也至少有一个空位没有停车。
为了防剐蹭,需为停车人找到一个车位,使得距停车人的车最近的车辆的距离是最大的,返回此时的最大距离。
输入描述:
1、一个用半角逗号分割的停车标识字符串,停车标识为0或1,0为空位,1为已停车。
2、停车位最多100个。
输出描述:
输出一个整数记录最大距离。
补充说明:
示例1
输入:
1,0,0,0,0,1,0,0,1,0,1
输出:
2
说明:
当车停在第3个位置上时,离其最近的的车距离为2(1到3)。
当车停在第4个位置上时,离其最近的的车距离为2(4到6)。
其他位置距离为1。
因此最大距离为2。
- #include <iostream>
- #include <vector>
- using namespace std;
- int main() {
- int a;
- char c;
- vector<int> input;
-
- while(cin >> a >> c)// 注意,如果输入是多个测试用例,请通过while循环处理多个测试用例
- {
- input.push_back(a);
- }
- input.push_back(a);
-
- a = 0;
- int res1 = 0;
- int i=0;
- int j=input.size()-1;
-
- while(input[i] == 0){
- res1++;
- ++i;
- }
- int res2 = 0;
- while(input[j] == 0){
- res2++;
- --j;
- }
-
- int res3 = 0;
- for(; i<=j ; ++i){
- if(input[i] == 1){
- if(a%2)
- res3 = max(res3, a/2 + 1);
- else
- res3 = max(res3, a/2);
- a = 0;
- continue;
- }
- else{
- a++;
- }
- }
- cout << max(res1, max(res2, res3));
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。