背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

[250分]DiskClusters

[日期:2005-12-13] 作者:GoogleCodeJam [字体: ]

Problem Statement

    

You are given a string disk representing the clusters on a disk. An 'X' represents a used cluster, and a '.' represents an available cluster. You are also given an int size representing the size, in clusters, of a file waiting to be written to disk. A file can only be stored in clusters not already being used.

Return the minimum number of groups of consecutive clusters needed to store the file on the disk. (The disk does not wrap around at the end.) Return -1 if the disk does not have enough space available to store the file.

Definition

    

Class:

DiskClusters

Method:

minimumFragmentation

Parameters:

string, int

Returns:

int

Method signature:

int minimumFragmentation(string disk, int size)

(be sure your method is public)

    

 

Constraints

-

disk will contain between 1 and 50 characters, inclusive.

-

Each character of disk will be 'X' or '.'.

-

size will be between 1 and 50, inclusive.

Examples

0)

 

    

"."

2

Returns: -1

We can't fit the file on the disk.

1)

 

    

".XXXXXXXX.XXXXXX.XX.X.X."

6                                                                   

Returns: 6

There is only ever one cluster together, so all six clusters are separated.

2)

 

    

"XX..XX....X.XX........X...X.XX...XXXX..XX...XXXXX."

12

Returns: 2

We fit eight clusters together, and four clusters together.

3)

 

    

".X.XXXX.......XX....X.....X............XX.X.....X."

20

Returns: 3

 

4)

 

    

"....X...X..X"

11

Returns: -1   250

阅读:
打印