Home » Find texts that are ATBASH Palindromes

Find texts that are ATBASH Palindromes

ATBASH Palindrome – In ATBASH cipher, we replace a with z, b with y, c with x…..y with b, z with a. Find those texts which are palindrome after doing ATBASH cipher and reversing it. Ex. AMNZ Reversing it gives ZNMA and after applying ATBASH cipher, it becomes AMNZ which is equal to original text i.e. it is a palindrome..

📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 314
Challenge Difficulty: ⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn

Solving the challenge of Find texts that are ATBASH Palindromes with Power Query

Power Query solution 1 for Find texts that are ATBASH Palindromes, proposed by Bo Rydobon 🇹🇭:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Ans = Table.SelectRows(
    Source, 
    each Text.Combine(
      List.Transform(
        Text.ToList(Text.Reverse([Text])), 
        each Character.FromNumber(155 - Character.ToNumber(_))
      )
    )
      = [Text]
  )
in
  Ans
Power Query solution 2 for Find texts that are ATBASH Palindromes, proposed by Zoran Milokanović:
let
  Source = Excel.CurrentWorkbook(){[Name = "Input"]}[Content], 
  S = Table.SelectRows(
    Source, 
    each 
      let
        t = [Text], 
        c = {"A" .. "Z"}, 
        l = Text.Length([Text]) - 1, 
        p = List.PositionOf, 
        a = Text.At
      in
        List.AllTrue(List.Transform({0 .. l}, (i) => 25 - p(c, a(t, l - i)) = p(c, a(t, i))))
  )
in
  S
Power Query solution 3 for Find texts that are ATBASH Palindromes, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Sol = Table.SelectRows(
    Source, 
    each 
      let
        a = Text.ToList([Text]), 
        b = List.Zip({{"A" .. "Z"}, List.Reverse({"A" .. "Z"})}), 
        c = List.Reverse(List.ReplaceMatchingItems(a, b))
      in
        a = c
  )
in
  Sol
Power Query solution 4 for Find texts that are ATBASH Palindromes, proposed by Luan Rodrigues:
let
  Fonte = Tabela1, 
  sub = List.Zip({{"A" .. "Z"}, List.Reverse({"A" .. "Z"})}), 
  res = Table.SelectRows(
    Fonte, 
    each [
      a = Text.Combine(List.ReplaceMatchingItems(Text.ToList([Text]), sub)), 
      b = Text.Reverse(a) = [Text]
    ][b]
  )
in
  res
Power Query solution 5 for Find texts that are ATBASH Palindromes, proposed by Alexis Olson:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Result = Table.SelectRows(
    Source, 
    each [
      lst = List.Transform(Text.ToList([Text]), Character.ToNumber), 
      len = List.Count(lst), 
      check = List.AllTrue(
        List.Transform({1 .. Number.RoundUp(len / 2)}, (i) => lst{i - 1} = 155 - lst{len - i})
      )
    ][check]
  )
in
  Result
Power Query solution 6 for Find texts that are ATBASH Palindromes, proposed by Ramiro Ayala Chávez:
let
  Origen = Excel.CurrentWorkbook(){[Name = "Tabla1"]}[Content], 
  a = List.Transform(Origen[Text], each Text.ToList(_)), 
  b = List.Zip({{"A" .. "Z"}, List.Reverse({"A" .. "Z"})}), 
  c = List.Transform(a, each List.Reverse(List.ReplaceMatchingItems(_, b))), 
  d = Table.FromColumns({Origen[Text], c}, {"Text", "Answer Expected"}), 
  e = Table.TransformColumns(
    d, 
    {"Answer Expected", each Text.Combine(List.Transform(_, Text.From))}
  ), 
  Sol = Table.SelectRows(e, each [Answer Expected] = [Text])[[Answer Expected]]
in
  Sol
Power Query solution 7 for Find texts that are ATBASH Palindromes, proposed by Luke Jarych:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  ReverseText = Table.AddColumn(Source, "Reverse", each Text.ToList(Text.Reverse([Text]))), 
  Letters = List.Zip({{"A" .. "Z"}, List.Reverse({"A" .. "Z"})}), 
  AtbashCipher = Table.AddColumn(
    ReverseText, 
    "AtbashCipher", 
    each List.Reverse(List.ReplaceMatchingItems([Reverse], Letters))
  ), 
  IfTheSame = Table.AddColumn(AtbashCipher, "IfTheSame", each [AtbashCipher] = [Reverse]), 
  FilteredRows = Table.SelectRows(IfTheSame, each ([IfTheSame] = true))
in
  FilteredRows[[Text]]

Solving the challenge of Find texts that are ATBASH Palindromes with Excel

Excel solution 1 for Find texts that are ATBASH Palindromes, proposed by Bo Rydobon 🇹🇭:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            a,
            a=CONCAT(
                CHAR(
                    155-CODE(
                        MID(
                            a,
                            LEN(
                                a
                            )+1-SEQUENCE(
                                LEN(
                                a
                            )
                            ),
                            1
                        )
                    )
                )
            )
        )
    )
)
Excel solution 2 for Find texts that are ATBASH Palindromes, proposed by Rick Rothstein:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            a,
            CONCAT(
                CHAR(
                    155-CODE(
                        MID(
                            a,
                            SEQUENCE(
                                ,
                                LEN(
                                    a
                                ),
                                LEN(
                                    a
                                ),
                                -1
                            ),
                            1
                        )
                    )
                )
            )=a
        )
    )
)
Excel solution 3 for Find texts that are ATBASH Palindromes, proposed by John V.:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            x=CONCAT(
                CHAR(
                    155-CODE(
                        MID(
                            x,
                            1+LEN(
                                x
                            )-SEQUENCE(
                                LEN(
                                x
                            )
                            ),
                            1
                        )
                    )
                )
            )
        )
    )
)
Excel solution 4 for Find texts that are ATBASH Palindromes, proposed by محمد حلمي:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            a,
            LET(
                i,
                SEQUENCE(
                    LEN(
                        a
                    )
                ),
                v,
                MID(
                    a,
                    i,
                    1
                ),
                AND(
                    SORTBY(
                        v,
                        -i
                    )=CHAR(
                        90-MOD(
                            CODE(
                                v
                            )+25,
                            90
                        )
                    )
                )
            )
        )
    )
)
Excel solution 5 for Find texts that are ATBASH Palindromes, proposed by Julian Poeltl:
=FILTER(A2:A10,MAP(A2:A10,LAMBDA(T,LET(A,CHAR(SEQUENCE(26,,65)),Z,CHAR(SEQUENCE(26,,90,-1)),L,LEN(T),CONCAT(MID(CONCAT(XLOOKUP(MID(T,SEQUENCE(L),1),A,Z)),SEQUENCE(L,,L,-1),1))=T))))
Excel solution 6 for Find texts that are ATBASH Palindromes, proposed by Timothée BLIOT:
=TOCOL(
    MAP(
        A2:A10,
        LAMBDA(
            z,
            IF(
                CONCAT(
                    SORTBY(
                        MAP(
                            MID(
                                z,
                                SEQUENCE(
                                    LEN(
                                        z
                                    )
                                ),
                                1
                            ),
                            LAMBDA(
                                x,
                                CHAR(
                                    XLOOKUP(
                                        CODE(
                                            x
                                        ),
                                        SEQUENCE(
                                            26,
                                            ,
                                            65
                                        ),
                                        SEQUENCE(
                                            26,
                                            ,
                                            90,
                                            -1
                                        )
                                    )
                                )
                            )
                        ),
                        SEQUENCE(
                                    LEN(
                                        z
                                    )
                                ),
                        -1
                    )
                )=z,
                z,
                1/0
            )
        )
    ),
    3
)
Excel solution 7 for Find texts that are ATBASH Palindromes, proposed by Hussein SATOUR:
=FILTER(
    A2:A10,
     MAP(
         A2:A10,
          LAMBDA(
              x,
               LET(
                   a,
                    CHAR(
                        SEQUENCE(
                            26,
                            ,
                            65
                        )
                    ),
                    b,
                    CHAR(
                        SEQUENCE(
                            26,
                            ,
                            90,
                            -1
                        )
                    ),
                    c,
                    MID(
                        x,
                         SEQUENCE(
                             LEN(
                                 x
                             ),
                             ,
                             LEN(
                                 x
                             ),
                              -1
                         ),
                         1
                    ),
                   
                   CONCAT(
                       XLOOKUP(
                           c,
                            a,
                            b
                       )
                   ) = x
               )
          )
     )
)
Excel solution 8 for Find texts that are ATBASH Palindromes, proposed by Sunny Baggu:
=FILTER(
    
     A2:A10,
    
     MAP(
         
          A2:A10,
         
          LAMBDA(
              a,
              
               LET(
                   
                    _ts,
                    MID(
                        a,
                         LEN(
                             a
                         ) + 1 - SEQUENCE(
                             LEN(
                             a
                         )
                         ),
                         1
                    ),
                   
                    CONCAT(
                        XLOOKUP(
                            _ts,
                             CHAR(
                                 SEQUENCE(
                                     26,
                                      ,
                                      65
                                 )
                             ),
                             CHAR(
                                 SEQUENCE(
                                     26,
                                      ,
                                      26 + 64,
                                      -1
                                 )
                             )
                        )
                    ) = a
                    
               )
               
          )
          
     )
    
)
Excel solution 9 for Find texts that are ATBASH Palindromes, proposed by Abdallah Ally:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            LET(
                a,
                x,
                b,
                MID(
                    a,
                    SEQUENCE(
                        LEN(
                            a
                        )
                    ),
                    1
                ),
                c,
                XLOOKUP(
                    b,
                    CHAR(
                        SEQUENCE(
                            26,
                            ,
                            65
                        )
                    ),
                    CHAR(
                        SEQUENCE(
                            26,
                            ,
                            90,
                            -1
                        )
                    )
                ),
                CONCAT(
                    SORTBY(
                        c,
                        SEQUENCE(
                            COUNTA(
                                c
                            )
                        ),
                        -1
                    )
                )=a
            )
        )
    )
)
Excel solution 10 for Find texts that are ATBASH Palindromes, proposed by 🇵🇪 Ned Navarrete C.:
=FILTER(
    A2:A10,
    
     MAP(
         A2:A10,
         
          LAMBDA(
              r,
              
               r=REDUCE(
                   "",
                    MID(
                        r,
                        SEQUENCE(
                            LEN(
                                r
                            ),
                            ,
                            LEN(
                                r
                            ),
                            -1
                        ),
                        1
                    ),
                    LAMBDA(
                        c,
                        v,
                         LET(
                             abc,
                             CHAR(
                                 SEQUENCE(
                                     26,
                                     ,
                                     65
                                 )
                             ),
                             c&INDEX(
                                 abc,
                                 27-XMATCH(
                                     v,
                                     abc
                                 )
                             )
                         )
                    )
               )
               
          )
          
     )
    
)
Excel solution 11 for Find texts that are ATBASH Palindromes, proposed by Md. Zohurul Islam:
=LET(z,A2:A10,
u,CHAR(SEQUENCE(26,,65)),
v,CHAR(SEQUENCE(26,,90,-1)),
w,MA&P(z,LAMBDA(x,LET(
 sq,SEQUENCE(LEN(x)),
 a,MID(x,sq,1),
 b,CONCAT(SORTBY(XLOOKUP(a,u,v),sq,-1))=x,b))),
FILTER(z,w))
Excel solution 12 for Find texts that are ATBASH Palindromes, proposed by Pieter de B.:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            a,
            CONCAT(
                VLOOKUP(
                    MID(
                        a,
                        SEQUENCE(
                            LEN(
                                a
                            ),
                            ,
                            LEN(
                                a
                            ),
                            -1
                        ),
                        1
                    ),
                    BASE(
                        HSTACK(
                            ROW(
                                10:35
                            ),
                            45-ROW(
                                10:35
                            )
                        ),
                        36
                    ),
                    2
                )
            )=a
        )
    )
)
Excel solution 13 for Find texts that are ATBASH Palindromes, proposed by Nicolas Micot:
=LET(_inverser;
    LAMBDA(
        l_texte;
        CONCAT(
            STXT(
                l_texte;
                SEQUENCE(
                    NBCAR(
                        l_texte
                    );
                    ;
                    NBCAR(
                        l_texte
                    );
                    -1
                );
                1
            )
        )
    );
    
_cipher;
    LAMBDA(l_texte;
    CONCAT(CAR(90-(CODE(
        STXT(
            l_texte;
            SEQUENCE(
                NBCAR(
                        l_texte
                    )
            );
            1
        )
    )-65))));
    
FILTRE(
    A2:A10;
    MAP(
        A2:A10;
        LAMBDA(
            l_texte;
            _inverser(
                _cipher(
                        l_texte
                    )
            )=l_texte
        )
    )
))
Excel solution 14 for Find texts that are ATBASH Palindromes, proposed by Giorgi Goderdzishvili:
=FILTER(A2:A10,
    MAP(A2:A10,
    LAMBDA(x,
    LET(
txt,
    x,
    
ln,
    LEN(
        txt
    ),
    
cr,
    MID(
        txt,
        SEQUENCE(
            ,
            ln
        ),
        1
    ),
    
rv,
    CONCAT(
        CHAR(
            91-CODE(
                cr
            )+64
        )
    ),
    
isAn,
    
SUM(--((LEN(
        txt
    )-LEN(
    SUBSTITUTE(
        txt,
        cr,
        ""
    )
))=(LEN(
    rv
)-LEN(
    SUBSTITUTE(
        rv,
        cr,
        ""
    )
))))=ln,
    
isAn))))
Excel solution 15 for Find texts that are ATBASH Palindromes, proposed by Edwin Tisnado:
=FILTRAR(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            LET(
                y,
                SECUENCIA(
                    LARGO(
                        x
                    )
                ),
                CONCAT(
                    CARACTER(
                        155-CODIGO(
                            EXTRAE(
                                x,
                                y,
                                1
                            )
                        )
                    )
                )=CONCAT(
                    EXTRAE(
                        x,
                        ORDENAR(
                            y,
                            ,
                            -1
                        ),
                        1
                    )
                )
            )
        )
    )
)
Excel solution 16 for Find texts that are ATBASH Palindromes, proposed by Abdelrahman Omer, MBA, PMP:
=TOCOL(
    MAP(
        A2:A10,
        LAMBDA(
            w,
            FILTER(
                w,
                w=CONCAT(
                    SORTBY(
                        CHAR(
                            ABS(
                                CODE(
                                    MID(
                                        w,
                                        SEQUENCE(
                                            LEN(
                                                w
                                            )
                                        ),
                                        1
                                    )
                                )-90
                            )+65
                        ),
                        SEQUENCE(
                                            LEN(
                                                w
                                            )
                                        ),
                        -1
                    )
                )
            )
        )
    ),
    2
)
Excel solution 17 for Find texts that are ATBASH Palindromes, proposed by Daniel Garzia:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            LET(
                l,
                SEQUENCE(
                    LEN(
                        x
                    )
                ),
                x=CONCAT(
                    SORTBY(
                        INDEX(
                            CHAR(
                                91-ROW(
                                    1:26
                                )
                            ),
                            CODE(
                                MID(
                                    x,
                                    l,
                                    1
                                )
                            )-64
                        ),
                        -l
                    )
                )
            )
        )
    )
)
Excel solution 18 for Find texts that are ATBASH Palindromes, proposed by Hazem Hassan:
=LET(a,CHAR(SEQUENCE(26,,65)),TOCOL(MAP(A2:A10,LAMBDA(x,IF(CONCAT(XLOOKUP(MID(x,SORT(SEQUENCE(LEN(x)),,-1),1),a,SORT(a,,-1)))=x,x,1/0))),3))

Solving the challenge of Find texts that are ATBASH Palindromes with Python in Excel

Python in Excel solution 1 for Find texts that are ATBASH Palindromes, proposed by Bo Rydobon 🇹🇭:
[w for w in xl("A2:A10")[0] if ''.join(chr(155-ord(a)) for a in w[::-1]) == w]
Python in Excel solution 2 for Find texts that are ATBASH Palindromes, proposed by John V.:
Hi everyone!
[i for i in xl("A2:A10")[0] if f(i)]
Blessings!
                    
                  

Solving the challenge of Find texts that are ATBASH Palindromes with R

R solution 1 for Find texts that are ATBASH Palindromes, proposed by Konrad Gryczan, PhD:
library(tidyverse)
library(readxl)
input = read_excel("Atbash Palindromes.xlsx", range = "A1:A10")
test = read_excel("Atbash Palindromes.xlsx", range = "B1:B4")
atbash_cipher_palindrome = function(word) {
 atbash_code = rev(LETTERS)
 vec = str_split(word, "")[[1]]
 
 atbashed = map_chr(vec, function(x) {
 if (x %in% LETTERS) {
 index = which(LETTERS == x)
 return(atbash_code[index])
 } else {
 return(x)
 }
 })
 
 result = all(vec == rev(atbashed))
 return(result)
}
result = input %>%
 mutate(check = map_lgl(Text, atbash_cipher_palindrome)) %>%
 filter(check == TRUE) %>%
 select(`Answer Expected` = Text)
identical(result, test)
# [1] TRUE
                    
                  

&&

Leave a Reply