Ruby中如何实现字母镜像转换 如A对应输出Z
哈希实现字母镜像转换方案
你当前手动枚举键值对的写法适用于仅需要部分字母转换的场景,代码如下:
converter = { "A" => "Z", "B" => "Y", "C" => "X", "D" => "W" }
如果需要覆盖全部26个大写字母,不需要逐个手动填写,可以用动态生成的方式更高效:
converter = ('A'..'Z').zip(('A'..'Z').to_a.reverse).to_h
- 实现逻辑说明:
('A'..'Z')生成A到Z的大写字母范围序列.reverse将字母序列倒序排列为Z到Azip方法将正序、倒序的字母按位置一一配对.to_h将配对好的二维数组直接转换为哈希结构
- 调用方式:直接取哈希对应键的值即可,例如
converter['A']会返回Z,converter['Z']也会返回A,天然支持双向镜像匹配。
如果需要支持小写字母的镜像转换,可以单独生成小写字母的哈希再做合并:
# 生成大写+小写全量镜像哈希 upper_converter = ('A'..'Z').zip(('A'..'Z').to_a.reverse).to_h lower_converter = ('a'..'z').zip(('a'..'z').to_a.reverse).to_h converter = upper_converter.merge(lower_converter)
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

