当前位置: 代码迷 >> J2EE >> 求紧邻数字组合的种类(算法)
  详细解决方案

求紧邻数字组合的种类(算法)

热度:82   发布时间:2016-04-17 23:13:42.0
求相邻数字组合的种类(算法)
给定一组数字,相邻两个数组组合,组合的数不能超过26.问有多少种组合。
例如:给一个数字23,可以为2,3和23两种组合。
------解决思路----------------------
额, 我的意思是找出如下的序列
1212225   或者  1211212219
就是说, 最后两个数 ( 25  或者 19 ) 小于等于 26, 且最后一个数大于3, 比如 ( 5 , 9 ), 这就意味着, 这几个数是一组, 不管后面怎么添加字符, 都不能和最后一个数组合.
那么, 整个数字串就会被分为若干个孤立的片段, 比如这样:
1123  2218  8  7 18 
那么, 他们有多少种组合呢?
由于1123里面的任意两个相邻的数都可以组合, 而 第一组最后的3和第二组第一个2大于26, 是不能组合的, 同理这里的每个数字只能和同组的相邻数的组合,
那么, 再往下就是高中数学的东西了:
1123有5种写法(1, 1, 2, 3)  (11, 2, 3)  (1, 12, 3)  (1, 1, 23)  (11, 23)
2218也有5中写法
8有一种写法( 8 )
7有一种写法
18 有俩种写法 (1, 8) (18)
那么这个数字串又多少种写法?
  相关解决方案