I am trying to find solution to a challange in codeeval.com https://www.codeeval.com/open_challenges/125/
my code:
Dim seq As String = "0"
Dim tmp As String
For i As Integer = 1 To 31
tmp = seq
tmp = tmp.Replace("2", "3")
tmp = tmp.Replace("1", "2")
tmp = tmp.Replace("0", "1")
tmp = tmp.Replace("3", "0")
seq &= tmp
Next
Console.WriteLine(seq)
After 20 loops visual studio reaches 1.5 gb ram usage and doesn't work after 25 loops. Can you tell me how to fix this?
Edited:
The length of the final string must be 3000000000 long. Thats why I wrote a loop. In 10 loops string length becomes only 1024. I should probably write a loop 31 loops that would get a length of 4294967296 (2^31).
My new code:
Dim seq As StringBuilder = New StringBuilder()
Dim tmp As StringBuilder = New StringBuilder()
seq.Append("0")
For i As Integer = 1 To 30
tmp.Append(seq)
seq.Replace("2", "3")
seq.Replace("1", "2")
seq.Replace("0", "1")
seq.Replace("3", "0")
tmp.Append(seq)
seq.Clear()
seq.Append(tmp)
Next