回复 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
回复 16# 3mile
不错哦!判断正确,先去休息会儿吧!
我比较愚钝,硬是没看懂楼主的意思…
回复 17# 水木子
酒喝多了!幸好是水木兄,不介意小弟这么张狂。海涵,海涵。
回复 18# afan
前辈来啦!就是在等你呢!
想看看前辈奇妙的思路。
本帖最后由 大绯狼 于 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)这是我今年最神奇的代码。。。。。。。我都不知道我是怎么想的。。。。。。。。。。。
没看懂这个...
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)我觉得这个更靠谱。。。。。。。。。。
我觉得这个更靠谱。。。。。。。。。。
大绯狼 发表于 2010-8-7 00:26 http://www.autoitx.com/images/common/back.gif
想到一块了…
回复 24# afan
这应该是最普通的办法把。。。。汗
回复 25# 大绯狼
所以我没敢贴出来 ^ ^
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))
C.L 发表于 2010-8-7 02:23 http://www.autoitx.com/images/common/back.gif
转2进制再求值,高~!
回复 27# C.L
果然厉害,佩服
回复 27# C.L
只是如果含双字节字符此法就不行了