A Microsoft Office (Excel, Word) forum. OfficeFrustration

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.

Go Back   Home » OfficeFrustration forum » Microsoft Excel » Worksheet Functions
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Palindromes



 
 
Thread Tools Display Modes
  #1  
Old October 22nd, 2009, 11:03 AM posted to microsoft.public.excel.worksheet.functions
Luciano Paulino da Silva
external usenet poster
 
Posts: 52
Default 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  
Old October 22nd, 2009, 07:52 PM posted to microsoft.public.excel.worksheet.functions
Bernie Deitrick
external usenet poster
 
Posts: 2,496
Default 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  
Old November 6th, 2009, 03:43 PM posted to microsoft.public.excel.worksheet.functions
Luciano Paulino da Silva
external usenet poster
 
Posts: 52
Default 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  
Old November 6th, 2009, 08:40 PM posted to microsoft.public.excel.worksheet.functions
Bernie Deitrick
external usenet poster
 
Posts: 2,496
Default 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 03:19 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.