在丢失前导零后撤消错误排序

时间:2015-11-04 09:26:28

标签: algorithm mapping leading-zero

对于想要花一些时间的人来说,你有一个小谜语:

由于缺少前导零,我有大约200个文件被严重排序和重命名。我必须撤消这种排序,并再次分配原始值,以便我有这样的订单:

current file name                original

TimePoint1            ->         TimePoint1
TimePoint2            ->         TimePoint10
TimePoint3            ->         TimePoint100
TimePoint4            ->         TimePoint101
TimePoint5            ->         TimePoint102
                     ...
TimePoint250          ->         TimePoint250

我会回答一下,但我不想错过你提供的任何优雅解决方案。

谢谢,玩得开心!

1 个答案:

答案 0 :(得分:2)

您在这里只是按字母顺序排列。因此,取消此排序的最简单方法是再次使用此订单。我不确定你想使用哪种语言,所以这里是ruby中的一个例子:

a = []
(1..250).each{|t| a << t.to_s} # note that I am adding the *string* representation
a.sort!
(0...250).each do |i|
  File.rename("TimePoint#{a[i]}", "TimePoint#{i + 1}")
end