If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
Palindromes
Dear all,
Some time ago (http://groups.google.com.br/group/ microsoft.public.excel.worksheet.functions/browse_thread/thread/ 6b068321053a5c90/c6dcff10540e4bc2?q=palindromes+excel+bernie&lnk=ol &) Bernie Deitrick helped me to solve a problem related to palindromes and repeats detection on a string of letters. At present, I need perform some change on that macros in order to detect non-redundant palindromes and repeats. In this way, for the sequence bellow my solution it would be: QGAGAAAAAAAAGGAGQGG 13 Palindromes detected GAG AGA GAAAAAAAAG AA AAA AAAA AAAAA AAAAAA AAAAAAA AAAAAAAA AGGA GG GQG 1 3 Now the solution it would be: QGAGAAAAAAAAGGAGQGG 13 Non-redundant Palindromes detected GAG GAAAAAAAAG GG The big palindromes should be preferred in the occurrences. Thanks in advance, Luciano |
#2
|
|||
|
|||
Palindromes
Luciano,
Why not GQG and AGGA also? Can each individual character only be used once? HTH, Bernie MS Excel MVP "Luciano Paulino da Silva" wrote in message ... Dear all, Some time ago (http://groups.google.com.br/group/ microsoft.public.excel.worksheet.functions/browse_thread/thread/ 6b068321053a5c90/c6dcff10540e4bc2?q=palindromes+excel+bernie&lnk=ol &) Bernie Deitrick helped me to solve a problem related to palindromes and repeats detection on a string of letters. At present, I need perform some change on that macros in order to detect non-redundant palindromes and repeats. In this way, for the sequence bellow my solution it would be: QGAGAAAAAAAAGGAGQGG 13 Palindromes detected GAG AGA GAAAAAAAAG AA AAA AAAA AAAAA AAAAAA AAAAAAA AAAAAAAA AGGA GG GQG 1 3 Now the solution it would be: QGAGAAAAAAAAGGAGQGG 13 Non-redundant Palindromes detected GAG GAAAAAAAAG GG The big palindromes should be preferred in the occurrences. Thanks in advance, Luciano |
#3
|
|||
|
|||
Palindromes
On 22 out, 16:52, "Bernie Deitrick" deitbe @ consumer dot org wrote:
Luciano, Why not GQG and AGGA also? Can each individual character only be used once? HTH, Bernie MS Excel MVP "Luciano Paulino da Silva" wrote in ... Dear all, Some time ago (http://groups.google.com.br/group/ microsoft.public.excel.worksheet.functions/browse_thread/thread/ 6b068321053a5c90/c6dcff10540e4bc2?q=palindromes+excel+bernie&lnk=ol &) Bernie Deitrick helped me to solve a problem related to palindromes and repeats detection on a string of letters. At present, I need perform some change on that macros in order to detect non-redundant palindromes and repeats. In this way, for the sequence bellow my solution it would be: QGAGAAAAAAAAGGAGQGG 13 Palindromes detected GAG AGA GAAAAAAAAG AA AAA AAAA AAAAA AAAAAA AAAAAAA AAAAAAAA AGGA GG GQG 1 3 Now the solution it would be: QGAGAAAAAAAAGGAGQGG 13 Non-redundant Palindromes detected GAG GAAAAAAAAG GG The big palindromes should be preferred in the occurrences. Thanks in advance, Luciano Dear Bernie, In this case, the palindromes GQG and AGGA should not be detected because they are part of the other palindromes previously detected or bigger than them. Yes, each palindrome should be used once. Thank you for your attention, Luciano |
#4
|
|||
|
|||
Palindromes
Luciano,
Run the sub FindPalindromes and it will list the palindromes from cell A1 in column B, with the restriction that no letter be used more than once, and that the longest palindromes are used first, and the first palindromes of a certain length is used if there are two or more of the same length. As written, the string cannot have the character \ used in it. HTH, Bernie MS Excel MVP Option Explicit Sub FindPalindromes() Palindromes Range("A1").Value End Sub Sub Palindromes(strBig As String) Dim FoundPals() As String Dim PalCount As Integer Dim i As Integer Dim j As Integer Dim k As Integer Dim MaxLen As Integer Dim MaxID As Integer Dim strTemp As String If Len(strBig) 2 Then Exit Sub MaxLen = 0 MaxID = 0 PalCount = 1 ReDim FoundPals(1 To 1) For i = 1 To Len(strBig) - 1 For j = 2 To Len(strBig) - i + 1 strTemp = Mid(strBig, i, j) If isPal(strTemp) Then If Len(strTemp) MaxLen Then MaxLen = Len(strTemp) MaxID = PalCount End If If PalCount = 1 Then FoundPals(1) = Mid(strBig, i, j) PalCount = 2 Else For k = 1 To UBound(FoundPals) If FoundPals(k) = strTemp Then GoTo PalExists Next k ReDim Preserve FoundPals(1 To PalCount) FoundPals(PalCount) = strTemp PalCount = PalCount + 1 PalExists: End If End If Next j Next i If MaxID 0 Then Cells(Rows.Count, 2).End(xlUp)(2).Value = FoundPals(MaxID) Palindromes CStr(Split(Replace(strBig, FoundPals(MaxID), "\"), "\")(0)) Palindromes CStr(Split(Replace(strBig, FoundPals(MaxID), "\"), "\")(1)) End If End Sub Function isPal(strPal As String) As Boolean Dim i As Integer Dim strTemp As String isPal = False For i = Len(strPal) To 1 Step -1 strTemp = strTemp & Mid(strPal, i, 1) Next i isPal = (strPal = strTemp) End Function "Luciano Paulino da Silva" wrote in message ... On 22 out, 16:52, "Bernie Deitrick" deitbe @ consumer dot org wrote: Luciano, Why not GQG and AGGA also? Can each individual character only be used once? HTH, Bernie MS Excel MVP "Luciano Paulino da Silva" wrote in ... Dear all, Some time ago (http://groups.google.com.br/group/ microsoft.public.excel.worksheet.functions/browse_thread/thread/ 6b068321053a5c90/c6dcff10540e4bc2?q=palindromes+excel+bernie&lnk=ol &) Bernie Deitrick helped me to solve a problem related to palindromes and repeats detection on a string of letters. At present, I need perform some change on that macros in order to detect non-redundant palindromes and repeats. In this way, for the sequence bellow my solution it would be: QGAGAAAAAAAAGGAGQGG 13 Palindromes detected GAG AGA GAAAAAAAAG AA AAA AAAA AAAAA AAAAAA AAAAAAA AAAAAAAA AGGA GG GQG 1 3 Now the solution it would be: QGAGAAAAAAAAGGAGQGG 13 Non-redundant Palindromes detected GAG GAAAAAAAAG GG The big palindromes should be preferred in the occurrences. Thanks in advance, Luciano Dear Bernie, In this case, the palindromes GQG and AGGA should not be detected because they are part of the other palindromes previously detected or bigger than them. Yes, each palindrome should be used once. Thank you for your attention, Luciano |
Thread Tools | |
Display Modes | |
|
|