Think Outside the Box: 一道原创智力题

探讨了在特定字符串序列中查找给定字符串首次出现位置的问题,并提出了一个有趣且具有挑战性的思考题:如何确定输出结果最大的输入字符串。

    七等分正方形,四笔串连3x3的点阵,12根火柴棍摆出面积为1的封闭图形,这些题目见多了,再整人已经没用了。今天我第一次自己想了一个好玩的这类题目。
    有个OI题的大意是,给你一个不超过200位的字符串,请问它第一次出现在串"1234567891011121314..."的什么位置。这道题可以用O(n^3)的枚举AC。
    今天和arthas聊天时突然想到一个问题,使得输出结果最大的字符串(最坏情况下的输入数据)是什么样的。
    你的答案是什么?想好答案前请先别往下看。













    我起初以为是9999999...,但是9999999....可以从中间分开来。比如,六个数字9有可能出现在899999,900000中。我开始怀疑,是否所有的串都可以像这样分开来。


    后来我想到是900000000...,这样就不能从中间分开来了(否则有前导0)。然而这仍然不是最坏的情况。
    很少有人想到正确答案吧:
0000000000.... (200个0)  这个答案显然是正确的。我也是后来才突然想到,因为我们忽略了输入是字符串,习惯性地以为输入数据是一个数,而且这个数越大越好

做人要厚道
转贴请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值