找回密码
 加入
搜索
查看: 3785|回复: 13

[效率算法] 文本里一个3位数的开头是另一个3位数的结尾就合并成一个5位数

 火.. [复制链接]
发表于 2011-10-30 16:51:40 | 显示全部楼层 |阅读模式
000        001        002        003        004       
008        010        011        012        013       
014        016        018        020        021       
022        023        026        028        030       
031        032        034        038        040       
如上文件里有如上数据,分隔符是tab,可以改成每个3位数一行
如果其中一个3位数的开头是另一个3位数的结尾就给他们合并成一个5位数,例如上面可以合并成00001 00002 00003 ……00040
这样  数据量有点大 要效率可能要求高点 嘎嘎
感谢大家帮助
发表于 2011-10-30 17:35:02 | 显示全部楼层
看了楼主的帖子, 我感觉自己很笨....
看了3遍, 还是没弄明白他的意思!
求聪明人解惑!
发表于 2011-10-30 18:04:53 | 显示全部楼层
例子不具代表性。如果都是0开头,用StringFormat()前面加0补足5位数就行了
发表于 2011-10-30 19:13:58 | 显示全部楼层
回复 1# today2004

000        001        002        003        004        
008        010        011        012        013        
014        016        018        020        021        
022        023        026        028        030        
031        032        034        038        040        

000和010=00001,000和020=00002,000和030=00003,000和040=00004.
是这个意思吧?
发表于 2011-10-30 21:13:33 | 显示全部楼层
回复 2# user3000
我也是,楼主就不能说明白点。
发表于 2011-10-30 23:10:08 | 显示全部楼层
看不太明白,不知道是不是这个意思
00001,00002……00009,
00010,00020,00030……00090,
00100,00110,00120……
10001,10011,10021
发表于 2011-10-30 23:26:47 | 显示全部楼层
说明白点吧 知道你说的怎么结合  000 和 001 写成 00001  但是没明白你要什么结果~!~
发表于 2011-10-31 10:08:24 | 显示全部楼层
左看右看没看明白是什么意思。只能猜
#include <array.au3>
Local $str="000,001,002,003,004,008,010,011,012,013,014,016,018,020,021,022,023,026,028,030,031,032,034,038,040"
$array=StringSplit($str,',',2)
;~ _ArrayDisplay($array)
Local $fin[1]
For $i=0 To UBound($array)-2
        $temp=$array[$i]
        For $n=$i+1 To UBound($array)-1
                If StringLeft($array[$n],1)==StringRight($temp,1) Then
                        ReDim $fin[UBound($fin)+1]
                        $fin[UBound($fin)-1]=$temp&StringRight($array[$n],2)
                EndIf
        Next
Next
_ArrayDisplay($fin)
 楼主| 发表于 2011-10-31 12:25:00 | 显示全部楼层
是这样的 文本里 一堆3位数例如 901 ,208,304,807 要给某个3位数的结尾是另个3位数开头的这2个3位数 组合成一个五位数,如我可以组成20807
发表于 2011-10-31 12:35:56 | 显示全部楼层
本帖最后由 netegg 于 2011-10-31 12:37 编辑

算了吧,楼主还是给出原始文件,和要的最后结果吧,别太信任自己的语文水平了

评分

参与人数 1金钱 +10 收起 理由
afan + 10 我很赞同

查看全部评分

发表于 2011-10-31 12:41:38 | 显示全部楼层
本帖最后由 afan 于 2011-10-31 12:43 编辑

208 832 如何组? 20832? 83208? 还是如蛋蛋所说,直接给出所要全部结果,不要省略号
发表于 2011-10-31 13:19:22 | 显示全部楼层
回复 9# today2004
你将代码的第二行改为Local $str="901,208,304,807"看结果是你想要的吗?
 楼主| 发表于 2011-10-31 23:07:08 | 显示全部楼层
嗯嗯 就是这样的  谢谢 3mile  
唉……表达能力不好 耽误很多人时间了 抱歉
发表于 2011-11-5 00:52:19 | 显示全部楼层
000        001    如果其中一个3位数的开头是另一个3位数的结尾就给他们合并成一个5位数,例如上面可以合并成00001    不解 这里哪来的3位相同数?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-7 07:02 , Processed in 0.091445 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表