3mile
发表于 2010-8-6 23:19:45
回复 15# 水木子
字符串长度一定要相同吗?
头很晕,别理我。#include <array.au3>
Local $z=1
$a="abc123"
$b="2acb31"
$a_array=StringSplit($a,"")
_ArrayDelete($a_array,0)
$b_array=StringSplit($b,"")
_ArrayDelete($a_array,0)
For $i=0 To UBound($b_array)-1
$fin=_ArrayFindAll($a_Array,$b_array[$i])
If UBound($fin)>0 Then $z+=1
Next
If StringLen($b)=$z And StringLen($a)=StringLen($b) Then
MsgBox(0,0,"相似")
Else
MsgBox(0,0,"不相似")
EndIf
水木子
发表于 2010-8-6 23:23:18
回复 16# 3mile
不错哦!判断正确,先去休息会儿吧!
afan
发表于 2010-8-6 23:25:50
我比较愚钝,硬是没看懂楼主的意思…
3mile
发表于 2010-8-6 23:29:48
回复 17# 水木子
酒喝多了!幸好是水木兄,不介意小弟这么张狂。海涵,海涵。
水木子
发表于 2010-8-6 23:34:44
回复 18# afan
前辈来啦!就是在等你呢!
想看看前辈奇妙的思路。
大绯狼
发表于 2010-8-7 00:04:53
本帖最后由 大绯狼 于 2010-8-7 00:12 编辑
Dim $a = "123456789abcdefg"
Dim $b = "abcdefg123456789"
$xora = 0
$plusa = 0
$xorb = 0
$plusb = 0
$flag = False
If StringLen($a) = StringLen($b) Then
For $i = 1 To StringLen($a)
$xora = BitXOR(Asc(StringMid($a, $i, 1)), $xora)
$xorb = BitXOR(Asc(StringMid($b, $i, 1)), $xorb)
$plusa += Asc(StringMid($a, $i, 1))
$plusb += Asc(StringMid($b, $i, 1))
Next
If $xora = $xorb And $plusa = $plusb Then
$flag = True
EndIf
EndIf
MsgBox(0, 0, $flag)这是我今年最神奇的代码。。。。。。。我都不知道我是怎么想的。。。。。。。。。。。
minterz
发表于 2010-8-7 00:14:28
没看懂这个...
大绯狼
发表于 2010-8-7 00:26:02
Dim $a = "123456789abcdefg"
Dim $b = "abcdefg123456789"
$flag = False
If StringLen($a) = StringLen($b) Then
For $i = 1 To StringLen($a)
$b=StringReplace($b,StringMid($a, $i, 1), "",1,1)
Next
If $b = "" Then
$flag = True
EndIf
EndIf
MsgBox(0, 0, $flag)我觉得这个更靠谱。。。。。。。。。。
afan
发表于 2010-8-7 00:27:54
我觉得这个更靠谱。。。。。。。。。。
大绯狼 发表于 2010-8-7 00:26 http://www.autoitx.com/images/common/back.gif
想到一块了…
大绯狼
发表于 2010-8-7 00:28:57
回复 24# afan
这应该是最普通的办法把。。。。汗
afan
发表于 2010-8-7 00:29:39
回复 25# 大绯狼
所以我没敢贴出来 ^ ^
C.L
发表于 2010-8-7 02:23:26
Dim $a = "123456789abcdefg"
Dim $b = "abcdefg123456789"
$a = StringRegExpReplace(StringTrimLeft(StringToBinary($a),2),"(\S{1})(\S{1})","+$1+$2")
$b = StringRegExpReplace(StringTrimLeft(StringToBinary($b),2),"(\S{1})(\S{1})","+$1+$2")
MsgBox (0,"",Execute($a)=Execute($b))
afan
发表于 2010-8-7 10:42:56
C.L 发表于 2010-8-7 02:23 http://www.autoitx.com/images/common/back.gif
转2进制再求值,高~!
3mile
发表于 2010-8-7 11:53:55
回复 27# C.L
果然厉害,佩服
afan
发表于 2010-8-7 13:36:09
回复 27# C.L
只是如果含双字节字符此法就不行了