Ich versuche, eine Anwendung zu erstellen, die bestimmen wird, ob eine vom Benutzer eingegebene Zeichenfolge ein Palindrom ist oder nicht.Visual Basic Palindrom Code
Ist es möglich, ohne StrReverse, möglicherweise mit für nächste Schleife. Das habe ich bisher gemacht.
Arbeiten ein, mit StrReverse:
Dim userInput As String = Me.txtbx1.Text.Trim.Replace(" ", "")
Dim toBeComparedWith As String = StrReverse(userInput)
Select Case String.Compare(userInput, toBeComparedWith, True)
Case 0
Me.lbl2.Text = "The following string is a palindrom"
Case Else
Me.lbl2.Text = "The following string is not a palindrom"
End Select
Nicht einem einzigen Arbeits:
Dim input As String = TextBox1.Text.Trim.Replace(" ", "")
Dim pallindromeChecker As String = input
Dim output As String
For counter As Integer = input To pallindromeChecker Step -1
output = pallindromeChecker
Next counter
output = pallindromeChecker
If output = input Then
Me.Label1.Text = "output"
Else
Me.Label1.Text = "hi"
End If
Cooler Algorithmus! Sehr kurz. Ein Punkt, den ich durchdenken musste, ist, dass dies für ungerade Strings funktioniert, weil der Integer-Typ die .5 schneidet, was zur Folge hat, dass eine ungerade Länge durch 2 geteilt wird, und das zusätzliche Zeichen in der Mitte kann einen beliebigen Wert haben. – BobRodes
@BobRodes Richtig, deshalb ist es einfacher. – Dai
In VB.Net wird '3/2' auf 2 gerundet, aber die Ganzzahldivision' 3 \ 2' wird auf 1 gekürzt. Bitshift funktioniert auch 'length >> 1' – Slai