find duplicate characters count in a string

input: "Banana",

output: "B---------------1" , "aaa---------------3", "nn---------------2" 

any one try it anthor way ..

{

a!localVariables(
local!data: "Banana",
local!len: len(local!data),
local!merge: union(
a!forEach(
items: enumerate(local!len) + 1,
expression: local!data[fv!index]
),
a!forEach(
items: enumerate(local!len) + 1,
expression: local!data[fv!index]
)
),
local!all: a!forEach(
items: enumerate(local!len) + 1,
expression: local!data[fv!index]
),
a!forEach(
items: local!merge,
expression: index(
local!data,
wherecontains(fv!item, local!all),
{}
) & "---------------" & count(wherecontains(fv!item, local!all))
)
)

}

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    Here's a somewhat different implementation - slightly longer but more focused on abstracting the individual steps on easier-to-understand local variable definitions, and without a need to iterate over an array of all 26 letters.

    a!localVariables(
      
      local!word: "banana",
      
      local!letters: a!forEach(
        code(lower(local!word)),
        char(fv!item)
      ),
      
      local!uniqueLetters: union(local!letters, local!letters),
      
      local!counts: a!forEach(
        local!uniqueLetters,
        a!map(
          letter: fv!item,
          count: length(wherecontains(fv!item, local!letters))
        )
      ),
      
      a!forEach(
        local!counts,    
        concat(repeat(fv!item.count, fv!item.letter)) & " ----> " & fv!item.count
      )
    )

  • a!localVariables(
    local!input: "SHUKUR",
    local!array1: char(code(local!input)),
    local!array: union(local!array1,local!array1),
    a!forEach(
    items: local!array,
    expression: a!localVariables(
    local!count: if(
    regexmatch(fv!item,local!input)>0,
    count(regexallmatches(fv!item,local!input)),
    {}
    ),
    concat(repeat(local!count,fv!item),"--------",local!count)
    )
    )
    )

Reply Children
No Data