Reverse a String without using reverse function

Certified Associate Developer

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)
      )
    )
  )


  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    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)
    )

Reply
  • 0
    Certified Lead Developer

    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)
    )

Children
No Data