今天看到一段 erlang 代码,大致功能就是输入“xxxx.erl”或者“xxxx”的字符串。截取其中的“.erl”,来进行判断是否是 erlang 源文件
-define(EXT, ".erl").
lists:reverse(string:sub_string(lists:reverse(Str), 1, length(?EXT))).
代码的思路也只是先把字符串先 reverse 成“lre.xxxx”,再截取 [1..".erl".length],然后再 reverse 成“.erl”。
这种先 reverse 再截取,再 reverse 的方式,不是很清楚,会是从遍历字符串效率角度考虑的吗?发个问题,想让大家多提点思路吧
以前一些算法题类似于字符串首部移到尾部,到是这样的思路方式。