Skip to main content
January 31, 2025
Solved

Reverse a String without using reverse function

  • January 31, 2025
  • 3 replies
  • 0 views

I'm unable to find where the mistake is in below code Reverse a string without reverse function: 

a!localVariables(
  local!result: ri!result,
  local!index: if(
    a!isNullOrEmpty(ri!index),
    length(ri!Input),
    ri!index
  ),
  if(
    ri!index < 1,
   ri!result,
    rule!T_Reversestring(
      ri!Input,
      local!index - 1,
      concat(
        local!result,
        index(ri!Input, local!index)
      )
    )
  )


Best answer by stefanhelzle0001

No recursion required

ri!text[len(ri!text) - enumerate(len(ri!text))]

3 replies

stefanhelzle0001
January 31, 2025

No recursion required

ri!text[len(ri!text) - enumerate(len(ri!text))]

January 31, 2025

Thanks, I got to learn new way of problem solving

mikes0011
Brainy
January 31, 2025

Stefan's elegant tiny answer got me thinking about what the "elegant but somewhat more verbose" answer might be.  Once again we can rely on a!forEach() and the dataSubset sort.  The advantage with this approach is it could potentially handle use cases with a little more nuance if needed.

a!localVariables(
  local!sortMap: a!forEach(
    enumerate(len(ri!text))+1,
    
    a!map(
      index: fv!item,
      currentLetter: ri!text[fv!item]
    )
  ),
  
  local!sortedSet: todatasubset(
    arrayToPage: local!sortMap,
    pagingConfiguration: a!pagingInfo(1, -1, a!sortInfo(field: "index", ascending: false()))
  ).data,
  
  concat(local!sortedSet.currentLetter)
)