二十六进制问题 - 算法与数据结构面试分享 (三十)

场景回顾:前两天群里有同学在讨论这样一个问题,说是遇到了一个数据结构面试题,打印从a到z, 如 a 到 ab,再到az, 再到azzz 的字符串(其实这并不准确,除非他真的要解决排列组合问题,或者是在26进制的基础上做了什么变化)。当时我是觉得这位同学没有说清楚,于是在群里我问了这样几个问题:

1. 这是一个要解决26进制的问题吗?

2. 每次只加一吗?

3. 打印的时候传什么参数,如传入N,是要把该过程中每次加1的数都打印出来呢,还是最打印最后一个结果?

从交流中可以看出,该同学对这个问题没有理解清楚。可以想象,如果这是一道面试题,他和面试官的沟通估计够呛了。严格来说,该题和数据结构无关。如果面试官问到了,其实是它想考查我们的代码功底怎么样。我们一块来澄清一下这个问题,然后我们再来分析如何解决这个问题。

重新定义问题: 请利用小写字母a-z表示一个二十六进制数,输入一个N,请帮我求出这个数的表示,或者帮我从控制台打印从0到N所表示的所有数。

分析问题:

1. 二十六进制的数,每位数的权重是26的W次方

2. 二十六进制的数里有26个数值,即从a,b,.., 到z

3. 分析重要的边界调价:

=> 一位数, a,b, c, ... z 表示从0-25, 最大的一位数是z

=> 二位数, ba-zz, 最小的二位数是 ba, 最大的二位数是 zz

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值