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
This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved. |