Google编程大赛入围赛750分真题 第五组

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

Google编程大赛入围赛750分真题 第五组

Problem Statement

牋牋

You are given a String[] grid representing a rectangular grid of letters. You

are also given a String find, a word you are to find within the grid. The

starting point may be anywhere in the grid. The path may move up, down, left,

right, or diagonally from one letter to the next, and may use letters in the

grid more than once, but you may not stay on the same cell twice in a row (see

example 6 for clarification). You are to return an int indicating the number of

ways find can be found within the grid. If the result is more than

1,000,000,000, return -1. Definition

牋牋

Class:

WordPath

Method:

countPaths

Parameters:

String[], String

Returns:

int

Method signature:

int countPaths(String[] grid, String find)

(be sure your method is public)

牋牋

Constraints

-

grid will contain between 1 and 50 elements, inclusive.

-

Each element of grid will contain between 1 and 50 uppercase ('A'-'Z') letters, inclusive.

-

Each element of grid will contain the same number of characters.

-

find will contain between 1 and 50 uppercase ('A'-'Z') letters, inclusive.

Examples

0)

牋牋

{"ABC",

"FED",

"GHI"}

"ABCDEFGHI"

Returns: 1

There is only one way to trace this path. Each letter is used exactly once.

1)

牋牋

{"ABC",

"FED",

"GAI"}

"ABCDEA"

Returns: 2

Once we get to the 'E', we can choose one of two directions for the final 'A'.

2)

牋牋

{"ABC",

"DEF",

"GHI"}

"ABCD"

Returns: 0

We can trace a path for "ABC", but there's no way to complete a path to the letter 'D'.

3)

牋牋

{"AA",

"AA"}

"AAAA"

Returns: 108

We can start from any of the four locations. From each location, we can then

move in any of the three possible directions for our second letter, and again

for the third and fourth letter. 4 * 3 * 3 * 3 = 108. 4)

牋牋

{"ABABA",

"BABAB",

"ABABA",

"BABAB",

"ABABA"}

"ABABABBA"

Returns: 56448

There are a lot of ways to trace this path.

5)

牋牋

{"AAAAA",

"AAAAA",

"AAAAA",

"AAAAA",

"AAAAA"}

"AAAAAAAAAAA"

Returns: -1

There are well over 1,000,000,000 paths that can be traced.

6)

牋牋

{"AB",

"CD"}

"AA"

Returns: 0

Since we can't stay on the same cell, we can't trace the path at all.

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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航