线上编程google(线上编程)

2023-11-20 12:22:04 数码极客 bianji01

 

google中国编程赛的俩题 NO2!请高手做!

为了方便大家编程,我翻译了一下,E文不够好,自己想了之后翻译的,但是基本意决对够正确。刚掉线了,到现在才发上来。

给你一个变量(String)grid表示一个字母矩阵。另外加一个变量,string类型,find,代表你要在字母矩阵中找到的字母。开始的点可以是矩阵中的任一地方。路线可以是向上,向下,向左,向右,或者对角线方向上,从而到下一个字母去。可以多次重复路径,但是不能在一行内经过同一个格子两次(见例六的详细说明)[也就是不能从自己到自己]

你要返加一个整型变量,用来表示在格子内能找到所要求字母的路径的个数。如果结果大于1,000,000,000就返回-1。

一个类WordPath

countPaths

vECtor,string

intcountPaths(vectorgrid,stringfind)

(确保这个方法是公共的Public)

规定(要求)

grid数组要有1-50个元素,包括1,50

数组的每个元素是一个由1-50个大写字母组成的字符串。

元素与元素间,字符串的长度要相等。(以构成一个矩阵)

find变量是一个由1-50个大写字母组成的字符串。(包括1,50)

grid=

{"ABC",

"FeD",

"GHI"}

find="ABCDEFGHI"

只有一条路径,每个字母都走了一遍。

grid=

{"ABC",

"feD",

"GAI"}

find="ABCDEA"

一旦我们走到了字母E,我们可以有两个方向到达字母A。

grid=

{"ABC",

"DEF",

"GHI"}

find="ABCD"

当然是返回0

我们可以找到ABC的路径,但是,却不能一下子从C跳到D。

grid=

{"AA",

"AA"}

find="AAAA"

路径数108

四个方向中,我们可以从任何一个方向开始。从每个位置,我们都可以选择三个可行的方向中的一个到达第2个字母,同样的一直到第4个字母。所以4*3*3*3=108

grid=

{"ABABA",

"BABAB",

"ABABA",

"BABAB",

"ABABA"}

find="ABABABBA"

返回值:56448

太多了路径可以选择啊。

grid=

{"AAAAA",

"AAAAA",

"AAAAA",

"AAAAA",

"AAAAA"}

find="AAAAAAAAAAA"

路径数:-1

超过了1,000,000,000条路径,所以,按规定,返回-1。

grid=

{"AB",

"CD"}

find="AA"

我们不能停在同一个格子上,所以,没有路径可以选择。

程序说明所有权和解释权归TOPCoder公司。任何未经授权、没有得到TopCoder公司的签署的授权文件而使用或者更改此信息的行为,都将受到起诉。?2003,TopCoder,Inc.Allrightsreserved.

本回答由提问者推荐

声明:易趣百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系315127732@qq.com
广告位招租
横幅广告