年薪200w一直不生孩子的老婆,要不要离婚?结婚十年了都不生孩子,快奔四了。我自己年薪100多。。
刚看到个贴子,说一个男的年薪100多,老婆年薪200万,但十年都不愿意生孩子。最近说要生了,又去卷大模型,天天焦虑,说没空生。网友一边劝离婚,一边骂男的控制欲太强。
我觉得这事吧,没法用“该不该离”来简单判断。婚姻本质是契约,但契约的核心是共识。一方想要稳定和家庭,另一方追求事业和自由,这不是谁错,而是方向不一样。结婚十年了,如果连孩子这种底线问题都没磨合出一致,那感情再好,也会慢慢被现实磨碎。
两人都奔四了,该认真谈谈未来,不是逼谁妥协,而是看看还能不能走在同一条路上。走不下去,也别互相折磨。
人生下半场,最重要的是心安。【备注:文末可领最新资料】
算法题:TinyURL 的加密与解密
意思很简单:给你一条很长很长的 URL,要“缩一缩”变短(encode),之后别人拿到短链接还能“还原”回去(decode)。核心就是建立一个可逆映射,别把人家网址弄丢了。
思路选型怎么选
常见有两条路: 1)随机短码 + 映射表:生成长度固定的短码(例如 6 位 Base62),用哈希表把短码和长链互相记住,碰到冲突就重试。 2)自增ID + Base62:用数据库自增ID,转成 Base62 当短码,天然无冲突,但要持久化。 在线评测里一般内存版就够了,所以我们用第一种,快好省。
import java.util.*;
publicclassCodec{
privatestaticfinal String PREFIX = "http://tiny.url/";
privatestaticfinal String ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
privatestaticfinalint KLEN = 6;
privatefinal Map<String, String> k2l = new HashMap<>();
privatefinal Map<String, String> l2k = new HashMap<>();
privatefinal Random rnd = new Random();
// 生成 6 位随机短码
private String genKey(){
StringBuilder sb = new StringBuilder(KLEN);
for (int i = 0; i < KLEN; i++) {
sb.append(ALPHABET.charAt(rnd.nextInt(ALPHABET.length())));
}
return sb.toString();
}
// 把长链变短链
public String encode(String longUrl){
if (l2k.containsKey(longUrl)) return PREFIX + l2k.get(longUrl);
String key = genKey();
while (k2l.containsKey(key)) key = genKey(); // 冲突重试
k2l.put(key, longUrl);
l2k.put(longUrl, key);
return PREFIX + key;
}
// 把短链还原回长链
public String decode(String shortUrl){
String key = shortUrl.substring(PREFIX.length());
return k2l.getOrDefault(key, null);
}
}
复杂度与正确性
生成短码均摊 O(1),查表也是 O(1)。6 位 Base62 理论空间 62^6 ≈ 56 亿,评测规模内足够用,发生冲突的概率很低,代码里也做了重试兜底。为避免同一长链生成多个短码,做了 l2k 反向缓存。
线上化需要再想点事
持久化:换成数据库或 KV(如 Redis),防止进程重启丢数据。 并发:用 ConcurrentHashMap或者落库时加唯一索引,避免并发下重复短码。自增ID方案:高并发下更稳,可用号段/雪花ID,再 Base62。 过期策略:业务需要时给短链 TTL;统计点击次数可加埋点表。 安全:校验输入、屏蔽恶意跳转(黑名单/白名单域名)。
就这样,一个能跑、能解释清楚、还能扩展的 TinyURL 就齐活了。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html