s=str(input()) ans=0 def f(s):     mx=0     for i in range(len(s),0,-1):         if '1'*i in s:             mx=i             break     return mx if s.count('1')==0:     print(0) elif s.count('1')==1:     print(1) else:     lef,rig=0,0     for i in range(len(s)):         if s[i]=='1':             lef+=1         else:             break     for i in range(len(s)-1,-1,-1):         if s[i]=='1':             rig+=1         else:             break     res=f(s)     print(max(res,min(lef+rig,len(s))))
点赞 评论

相关推荐

点赞 评论 收藏
分享
05-04 21:11
门头沟学院 Java
面试官很和蔼,很尊重我。面试开始时,首先介绍了自己所工作的部门,当时说的太快,我听的不太清。接下来就是项目和八股了:1、你先介绍一下自己在做项目时遇到的难点,以及你是怎么解决的。答的稀烂,没提前准备。直接让面试官问我了,感觉面评会很差!2、那你先说一下怎么基于拦截器进行Token的校验以及刷新,答的越详细越好。3、为什么要用双层拦截器?4、知道ThreadLoacl的底层原理吗?说一下。5、知道死锁吗?解释一下死锁。6、死锁怎么解决呢?答了一次性申请所有资源和申请不到资源就自己释放自己的资源。面试官肯定了第二种,说不同的场景要用不同的解决方法。我甚至让面试官说一种场景,面试官被我干沉默了半分钟,说这不太好说,但还是说了一个场景。7、解释一下通过分布式锁以及stream消息实现高并发一人一单的优化。答的很烂,说了个大概,分布式锁实现一人一单,stream加快执行效率。8、用到了什么分布式锁呢?9、setnx的底层原理是什么?知道吗?10、假如现在有三个线程来下单了,库存只有两个了,那三个线程都判断库存充足,并且都是首次下单,是不是三个线程都能判断自己可以下单成功,这时你将三个线程中的用户id和优惠券id都放到消息队列中,这个时候只能消耗两条消息,还有一条消息怎么办?没回答上来(事实上,库存判断+是否下过单判断+减库存+写入Stream队列全部封装在一个Lua脚本中原子执行,Lua脚本具有原子性,多个线程即使并发执行EVAL命令,Redis仍会串行执行脚本逻辑,保证同一时刻只有一个线程完成判断与写入流程。)11、说一下是怎么使用工厂模式和策略模式实现布隆过滤器解决缓存穿透。12、解释布隆过滤器的底层原理。13、知道MySQL吗,说一下都有哪些索引?14、联合索引知道吗?底层是什么数据结构?15、解释一下B+树。16、联合索引的查询规则最左前缀法则的底层原理。答了JavaGuide上的,通过每个索引筛选掉一部分数据。面试官说,那直接从第二个索引也能进行筛选啊,怎么解释呢?17、说一下事务的隔离级别。18、脏读、不可重复读和幻读。19、场景题:N个数的文件中,怎么搜索到前10大的数字?答的是将数据先存到DB表中,再读取就可以了。面试官说,这效率太慢了,一般不采取。20、知道ReenTrantLock吗?说一下它的底层原理。就回答了个CLH锁,忘记AQS了.......算法题:股票问题Ⅲ,没撕出来,跟着carl刷到动态了,但还没刷到这一题,面试官提醒了我3次,还是不会。反问环节总结:人生中的第一次大厂面试,总时长1小时15分钟。自己准备的不够充分,回答问题逻辑性不够(回答的很多话都需要面试官去理解,然后问我是不是这样),很多知识点的底层原理也不太清楚。虽然结果不好,但是已经尽力了,毕竟从决定学java到现在不过才2个月,还是要多学多思考。
美团一面2089人在聊 查看20道真题和解析
点赞 评论 收藏
分享
05-13 03:04
已编辑
福建华南女子职业学院 Java
问:ArrayList底层答:基于数组实现,查询时间复杂度 0(1),插入O(n),有扩容机制,扩容到原长度 1.5 倍,扩容先创建新数组然后移动转移数据。问:hashCode 和equals 区别答:hashCode是对象唯一哈希码,equals是通过比较对象成员变量值是否相等。(其实hashCode可能因为哈希冲突不唯一,Object的equals是比较地址,只是大部分类会重写为比较内容,==是比较地址)问:StringBuilder和 StringBuffer 区别答:在字符串拼接上性能有差异(其实应该答线程安全,Buffer是线程安全的所以性能上会有额外开销)问:如何保证并发安全答:简单变量可用 CAS或原子类保证数据一致性,复杂业务通过加锁保证线程安全问:ArrayList线程安全吗答:不安全,应该使用 ConcurrentHashMap 等线程安全集合类,底层用 AQS 实现问:Mysql事务隔离级别和相应的问题答:读未提交、读已提交(RC)、可重复读(RR)、串行化,默认可重复读,通过加间隙锁避免幻读问:索引底层答:基于B+树实现,双向链表维护的多叉查找树,前后指针方便范围查询,节点存主键实现回表查询问:什么情况导致索引失效答:不符合最左前缀原则,like、!=、isnull 等等。(其实还有函数与运算操作也会导致索引失效)问:Redis 分布式锁底层答:忘记了(其实是setnx,真忘了)问:JVM内存结构答:程序计数器、方法区、常量池、堆和栈问:垃圾回收算法答:标记清除法(会产生内存碎片),复制法(需多一倍空闲空间,无内存碎片)。问:讲讲AOP答:面向切面编程,用来增强方法,通过找到切入点,选择通知类型增强方法,通过动态代理,调用动态代理的方法问:Spring Bean 生命周期答:不会(没背Spring八股)问:超卖问题答:乐观锁解决,原理类似 CAS,先检查优惠券数量是否与原数量一致,再进行减一操作,但高并发下可能成功率会很低。(其实优化了不需要一致,只要剩余数大于0都会扣库存)问:消息队列推送消息如何保证不重复答:生产者去重,发送消息前筛掉发送过的消息(其实RocketMQ自身具备消息去重功能,通过生产者组内的唯一标识和消息的全局唯一标识,在 Broker 端对消息进行去重处理)最后经典问我27怎么就找实习学校同意吗,然后问我福州的为什么选择投珠海,然后就跟我说结束了让我等通知估计是挂了,答的太烂了,没岗位介绍也没反问机会,还跟我强调3天没回复就是落选了准备太不充分了,一定要把自己简历吃透,被自己写的东西问倒可太丢脸了————————————————二编后续经理二面,讲了公司大致业务和实习生安排。公司感觉大概是面向海外的外包业务,招实习生进来一般不会接触公司业务,是几个人的实习生小团队跟着ld研究课题进行技术迭代,后面有个业务是类似社区的可能会让我接触,ld说跟我的黑马点评有点像,想把我往那方面培养?原本我这么早就投暑期日常实习是想着熟悉面试流程,面着玩,结果OC了,我想着没法立刻过去,想拒掉的,结果经理很包容,跟我说可以期末考后再去。那我后续可能还是接着面,拿到offer我就摊牌说暑假才能去,最后选一个最合适的吧,后续应该会开个帖子来问下大家意见一起选一下
查看17道真题和解析
点赞 评论 收藏
分享
牛客网
牛客企业服务