wind面试题-解答

问题:编码与反编码

若2[a] = aa
如何输出 例如:3[a3[b][3c]] 或者 3[2[b]]

解题思路:

面试的时候想着看一一对应,比如第一个右括号位置对应的第一个左括号位置,如果比第二个右括号位置远的话,就说明发生了嵌套。
错了呀。的确是位置上的不同,但是不是这么思考的,因为这样你很难确定出括号的对应关系不是吗?
你这种思路大概是,我默认第一个个反向括号和第一个正向括号对应,如果不对应,说明嵌套。可是呢,这种设想方式很难有个真正正确对应的推导能力
比如:3[a3[b]] 你这种倒是很容易就解决了,但是呢?如果3[a3[b3[c]]]呢?如果3[a3[b]3[c]]呢?怎么对应?

我们需要的就是获得各个括号的对应关系对吗?那么找规律是很必要的,你的确也找了个规律,但是观察力不够敏锐。我们不要自己创建,发展规律,要从他的本质规律上去运用他自己的规律
思路就是进行括号计数
有一个正括号,必然有一个反括号。如果嵌套,即使不变,这就是本质规律。很直观。
维护一个int,一个List Integer ,让游标移动,遇到正括号int+1 遇到反向括号int-1。遇到正括号List 加一个位置,遇到反向括号的时候,我们记录的上一个正括号就是这个反括号对应的正括号。然后当int=0的时候,就搜寻完了。顺便处理一下异常

那怎么输出呢?当进行int-1操作的时候,他是现在string中最内层的编码string。把它展开

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些关于 Redis 运维的常见面试问题及其详细解答: 1. Redis 是什么?它的特点是什么? - Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,也可以用作数据库、缓存和消息队列。 - Redis 的特点包括高性能、支持多种数据结构、丰富的功能(如持久化、发布订阅、事务等)、易于部署和使用。 2. Redis 的持久化机制有哪些?它们之间有什么区别? - Redis 提供了两种持久化机制:RDB(Redis Database)和AOF(Append-Only File)。 - RDB 是通过将内存中的数据快照写入磁盘来实现持久化,适用于备份和恢复数据。 - AOF 是通过将写操作追加到一个日志文件中来实现持久化,适用于数据完整性和持久性要求更高的场景。 3. Redis 的主从复制是什么?它的作用是什么? - Redis 的主从复制是指将一个 Redis 服务器作为主节点,其他服务器作为从节点,将主节点上的数据复制到从节点。 - 主从复制的作用包括提高读性能(从节点可以处理读请求)和提供数据冗余和故障转移能力。 4. Redis 的高可用性如何实现? - Redis 可以通过使用主从复制和哨兵机制来实现高可用性。 - 哨兵是一个监控系统,它可以检测主节点的状态,并在主节点宕机时自动将一个从节点升级为新的主节点。 5. Redis 的数据淘汰策略有哪些?它们之间有什么区别? - Redis 的数据淘汰策略包括:noeviction、allkeys-lru、allkeys-random、volatile-lru、volatile-random、volatile-ttl。 - noeviction:不做淘汰,当内存不足时,新写入的数据会导致写操作失败。 - allkeys-lru:从所有键中选择最近最少使用的进行淘汰。 - allkeys-random:随机选择一个键进行淘汰。 - volatile-lru:从设置了过期时间的键中选择最近最少使用的进行淘汰。 - volatile-random:从设置了过期时间的键中随机选择一个进行淘汰。 - volatile-ttl:从设置了过期时间的键中选择剩余时间最短的进行淘汰。 这些是关于 Redis 运维的常见面试问题及其详细解答。在准备面试时,还应该掌握 Redis 的其他方面,如性能调优、监控和故障处理等,以便更好地回答问题和展示你的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值