我可以实现对字符串中的每个单词进行反转并保持顺序,但我相信使用递归可以更快地完成。目前我正在浏览每个角色并翻转它,它不是最好的,因为当字符串很长时它可能很慢。如果你想知道,我正在研究加密算法......
示例:473hTml je31%@ 31#
这将导致:lmTh374#13 @%13ej
任何指导或良好的阅读都会很棒。
答案 0 :(得分:3)
不要使用递归:它不会更快。反转字符串不是需要递归的问题。
实际上,VB.Net有一个StrReverse
功能,所以我建议你只使用它(与String.Split
结合将字符串分解为单词,String.Join
将它们放入回到一起)。
此外,don't roll your own crypto - 至少,不是为了保护任何严重的事情。
答案 1 :(得分:0)
我没有vb专家,但这样的事情应该是一个好的开始。
public string reverseWord(string data) {
if (data.length == 1) {
return data;
} else {
return data.Concat(data.Substring(-1), reverseWord(data.Substring(1));
}
}
答案 2 :(得分:-1)
看,递归的BogoFlip!
Module Module1
Private rnd As New Random
Dim str As String = "testing"
Sub Main()
Console.WriteLine(str & " " & BogoFlip(str))
Console.ReadLine()
End Sub
Public Function BogoFlip(originalString As String) As String
Dim copy As String = originalString
Dim flipped As String = ""
Do Until copy.Length = 0
Dim index As Integer = rnd.Next(copy.Length)
flipped &= copy(index)
copy = copy.Remove(index, 1)
Loop
If flipped = StrReverse(originalString) Then
Return flipped
Else
Return BogoFlip(originalString)
End If
End Function
End Module
请不要在现实生活中这样做...请拜托请。