We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • HackerRank Home

    HackerRank

  • |
  • Prepare
  • Certify
  • Compete
  • Hiring developers?
  1. Prepare
  2. Algorithms
  3. Strings
  4. Weighted Uniform Strings
  5. Discussions

Weighted Uniform Strings

Problem
Submissions
Leaderboard
Discussions
Editorial

    You are viewing a single comment's thread. Return to all comments →

  • lambdadelta_
    4 months ago+ 0 comments

    Python 3

    import string
    import itertools
    
    def weightedUniformStrings(s, queries):
        alpha = string.ascii_lowercase
        weights = dict(zip(alpha, itertools.count(1)))
        groups = (g for k, g in itertools.groupby(s))
        U = set()
        for group in groups:
            substr_weights = (weights[c] for c in group)
            substr_U = itertools.accumulate(substr_weights)
            U.update(substr_U)
                
        yes_no = {True:"Yes", False: "No"}
        return [yes_no[q in U] for q in queries]
    
    0|
    Permalink
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy