【编程题目 |100分】找车位【2021 考试题】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

【找车位】

停车场有一横排车位,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。


代码实现


C++


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <bits/stdc++.h>
using namespace std;
/*
测试数据如下:
1 0 0 0 1 0 1 0 1 0
2
1 0 0 0 0 0 0 0 0 0
9
1 0 0 0
3
0 0 0 1
3
0 0 0 0 0 0 0 0 0 1
9
1 0 0 0 0 0 0 0 0 1
4
0 0 0 0 0 0 0 0 0 0
9
0 0 0
2
*/
int parking(vector<int> &park)
#include <bits/stdc++.h> using namespace std; /* 测试数据如下: 1 0 0 0 1 0 1 0 1 0 2 1 0 0 0 0 0 0 0 0 0 9 1 0 0 0 3 0 0 0 1 3 0 0 0 0 0 0 0 0 0 1 9 1 0 0 0 0 0 0 0 0 1 4 0 0 0 0 0 0 0 0 0 0 9 0 0 0 2 */ int parking(vector<int> &park)
#include <bits/stdc++.h>

using namespace std;

/*
测试数据如下:
1 0 0 0 1 0 1 0 1 0
2
1 0 0 0 0 0 0 0 0 0
9
1 0 0 0
3
0 0 0 1
3
0 0 0 0 0 0 0 0 0 1
9
1 0 0 0 0 0 0 0 0 1
4
0 0 0 0 0 0 0 0 0 0
9
0 0 0
2
*/
int parking(vector<int> &park)

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Golang


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
var str string
r := bufio.NewReader(os.Stdin)
str, _ = r.ReadString('\n')
package main import ( "bufio" "fmt" "os" "strings" ) func main() { var str string r := bufio.NewReader(os.Stdin) str, _ = r.ReadString('\n')
package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    var str string
    r := bufio.NewReader(os.Stdin)
    str, _ = r.ReadString('\n')

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.next();
String[] place = line.split(",");
int count = 0, max = 0, left = 0;
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String line = sc.next(); String[] place = line.split(","); int count = 0, max = 0, left = 0;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String line = sc.next();
        String[] place = line.split(",");
        int count = 0, max = 0, left = 0;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法一


剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
positions = list(map(int, input().split(',')))
maxLen = 0
positions = list(map(int, input().split(','))) maxLen = 0
positions = list(map(int, input().split(',')))
maxLen = 0

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法三


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
positions = list(map(int, input().split(',')))
maxLen = 0
positions = list(map(int, input().split(','))) maxLen = 0
positions = list(map(int, input().split(',')))
maxLen = 0

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] input = sc.nextLine().split(",");
int[] arr = new int[input.length];
for (int i = 0; i < input.length; i++) {
arr[i] = Integer.parseInt(input[i]);
}
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] input = sc.nextLine().split(","); int[] arr = new int[input.length]; for (int i = 0; i < input.length; i++) { arr[i] = Integer.parseInt(input[i]); }
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] input = sc.nextLine().split(",");
        int[] arr = new int[input.length];
        for (int i = 0; i < input.length; i++) {
            arr[i] = Integer.parseInt(input[i]);
        }

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看


JavaScript


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let s = readLine().split(",");
//let s = "0,0,0,0,0,1,0,0,1,0,1".split(",")
let list = [];
let s = readLine().split(","); //let s = "0,0,0,0,0,1,0,0,1,0,1".split(",") let list = [];
let s = readLine().split(",");
//let s = "0,0,0,0,0,1,0,0,1,0,1".split(",")
 
let list = [];

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看