题目地址:https://ac.nowcoder.com/acm/problem/13253
题目描述
给出一个正整数n,我们把1..n在k进制下的表示连起来记为s(n,k),例如s(16,16)=123456789ABCDEF10, s(5,2)=11011100101。现在对于给定的n和字符串t,我们想知道是否存在一个k(2 ≤ k ≤ 16),使得t是s(n,k)的子串。
输入描述:
第一行一个整数n(1 ≤ n ≤ 50,000)。
第二行一个字符串t(长度 ≤ 1,000,000)
输出描述:
"yes"表示存在满足条件的k,否则输出"no"
示例1
输入
8
01112
输出
yes
解题思路:
把1~n转化成对应的2~16进制序列,再在该序列中查找是否存在字符串t
进制转化方法:
1.用int数组存对应的进制序列,再将int数组转化为char[],分0~9和10~15两中情况转化成对应的字符,获得最终进制序列
2.用string存转化后的最终进制序列

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



