博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
脑洞大开的翻转代码
阅读量:6915 次
发布时间:2019-06-27

本文共 490 字,大约阅读时间需要 1 分钟。

介绍

有一个序列 abcdefgh, 假如想要让 abcdefgh 互换位置, 可以如何做呢?

这里介绍一种比较脑洞的解法.

  1. 先翻转子序列
    abc -> cba;
    defgh -> hgfed;

现在, 整个序列看起来就是这样 cbahgfed.

  1. 再翻转整个序列;

cbahgfed -> defghabc;

这样就,完成了 abcdefgh 的位置互换.

具有实用价值吗?

通常来说,翻转代码在时间和空间上都很高效(具体还是要看所使用的开发语言的特性),而且逻辑清晰,代码非常简短, 很难出错.

《编程珠玑》第二章的一段话很好的介绍了翻转代码的使用价值.

Brian Kernighan 和 P.J.Plauger 在其1981年出版的Software Tools in Pascal 一书中,就使用该代码在文本编辑器中实现了行的移动. Kernighan 报告称在第一次执行的时候程序就正确运行了, 而他们先前基于链表的处理相似任务的代码则包含几个错误. KenThompson 在 1971 年编写了编辑器和这种求逆代码, 甚至在那时就主张把该代码当作一种常识.

转载地址:http://soicl.baihongyu.com/

你可能感兴趣的文章
div加链接 html给div加超链接实现点击div跳转的方法
查看>>
layer 旋转
查看>>
写一个算法计算n的阶乘末尾0的个数
查看>>
Java正则表达式语法大全
查看>>
apache设置自定义header
查看>>
WPS田字格的做法
查看>>
Linux账号登录安全
查看>>
Linux 基础命令 – watch
查看>>
我的友情链接
查看>>
snavigator安装步骤
查看>>
python抓取jenkins slave信息写道mysql并展现到grafana
查看>>
debian 常用的源
查看>>
博为峰Java技术题-JavaSE 之标识符、注释
查看>>
陈松松:如何保证每天录制一个视频,一年365个原创视频
查看>>
Java笔试题解(13)
查看>>
我的友情链接
查看>>
Hbase的WAL在RegionServer基本调用过程
查看>>
sql语句中left join中的on与where的区别
查看>>
RHEL6.0源码编译安装小企鹅输入法fcitx-4.0.0
查看>>
ModelAndView 跳转的使用
查看>>