Statistics

Problem Statement for "StringSegment"

Problem Statement

A string is considered to be a composite of several maximal segments of identical characters. For example, "aaabbaaac" is a composite of the segments: "aaa", "bb", "aaa" and "c". Given a string, return the average length of all the segments which form that string.

Definition

Class:
StringSegment
Method:
average
Parameters:
String
Returns:
double
Method signature:
double average(String s)
(be sure your method is public)

Notes

  • A return value with either an absolute or relative error of less than 1.0E-9 is considered correct.

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • s will contain only lowercase letters ('a'-'z').

Examples

  1. "aaabbaaac"

    Returns: 2.25

    Average length of all the segments = ( 3 + 2 + 3 + 1 ) / 4 = 2.25

  2. "aabbccdd"

    Returns: 2.0

  3. "abba"

    Returns: 1.3333333333333333

  4. "a"

    Returns: 1.0

  5. "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

    Returns: 50.0

  6. "bcbc"

    Returns: 1.0

  7. "zxcvbnmlkjhgfdsaqwertyuiop"

    Returns: 1.0

  8. "xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx"

    Returns: 15.666666666666666

  9. "eeecabbccccbdbbaaabbbcaaaabbbdbccccddddabeeaaabbbe"

    Returns: 2.1739130434782608

  10. "abecccccddddddcbeeeeccaaeeeeaeccccccddeebbbdddbaaa"

    Returns: 2.5

  11. "dccbbbbebeacdbbbbdbaaaabbeeeeaaddeeeeaabbbeeecdccc"

    Returns: 2.0833333333333335

  12. "bedbbbeebccceecccdddddaaaadceedabaebbbbeeeeccaaaaa"

    Returns: 2.1739130434782608

  13. "bdddddcbbbbeeaaeeeeeedddaaaeeeedcccddddccccceebcc"

    Returns: 2.8823529411764706

  14. "ccbbceaaaaaaeeebbbddddcacbbbddddccaddcbbbaaaabbb"

    Returns: 2.4

  15. "adcdaaaadddedaadaaabbccccbbcccbddaabcceeeecaaaaa"

    Returns: 2.0869565217391304

  16. "bbbeeaaaddddebdddaabbbdbddcedcccabdccccbaacbbbbbdc"

    Returns: 1.9230769230769231

  17. "eecbcdbbbbbeddddaaddddccbabceeaddcddddeddddddeebb"

    Returns: 2.0416666666666665

  18. "bdeeabbbbbddddccccabbbbbeccccdddaabbeccccbbbbabbcc"

    Returns: 2.5

  19. "bbbbddddddddddddddddddccccceeeeaaaadaaaabddddddd"

    Returns: 5.333333333333333

  20. "bbbddddddddaaaaadddeeeeeeeeeeddbcccccdeeeedddaaaee"

    Returns: 3.8461538461538463

  21. "eeaaaacccccdddddbcccccaacccccccccaaaaaeaaaaabaa"

    Returns: 3.6153846153846154

  22. "dddddccceeddddaaddddeeeeaaaaaabbbbbccccaaaaaaaaeed"

    Returns: 3.8461538461538463

  23. "bbbbbccccceeeebbbbbbbbbbbbbaaaaabbbbbeeeeeceeeeaa"

    Returns: 4.9

  24. "bbbbddcccccccccaaeeeeebbbbbdccaaaaaddddcceeddddd"

    Returns: 3.6923076923076925

  25. "aaaaaeeedddddddddeebbbbccddddbbbccccccccdddcdccccc"

    Returns: 3.8461538461538463

  26. "aaaacccccccccbbbbaaaaaaaeeeeacaaaceebbbbbbbbbeeee"

    Returns: 4.083333333333333

  27. "aaaabaeeeeacccccbbbeeeeeaaaaaaaaaaaaacccddddee"

    Returns: 3.8333333333333335

  28. "eeaeeedddaaaaaddddaadddeeebbccaaaaaeeeeebbbbee"

    Returns: 3.066666666666667

  29. "vvvvvvvvvvvvvvvvwvzzzzzyyzzzzzvzzzzxxyyyyyyvvzzz"

    Returns: 4.0

  30. "xxxxxxxxxxxwwwzzzzzzvvvzwwwxxxzzzvvvvvvzzzzxxzzz"

    Returns: 4.0

  31. "xxxxxxxxxxxxxyyyyzzzzzzzzzzzvvvvwwxxxxwwwxxxxxyy"

    Returns: 5.333333333333333

  32. "wwwwwwwyyyyxxxxwwwwwwwwvwwwwwzzzzzzzyyywwwwyyxxxx"

    Returns: 4.454545454545454

  33. "xxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyywwwwyvvxxxxxzzzzz"

    Returns: 7.142857142857143

  34. "xxxxxxxxxxxxxxxxyyyyxxxxxvvvxxxxxxwwwwwyyyyvvvvv"

    Returns: 6.0

  35. "xxxxwwwwvvvwwwwyyyyyxxxzzzzyyxxxxyxxzyyyyyyxxzzzzv"

    Returns: 3.125

  36. "wwwwwwwwwwwwvvvvyxxxxvvvvvvzxxxyyyzzzzzzzzxxxxxxxy"

    Returns: 4.545454545454546

  37. "yyyyyyyyyyyyyyyyyyyyyyyvvvvvzzxyyyyzzwwwwzxvvvvv"

    Returns: 4.8

  38. "zzzzzzzxvvvvvyyyyyyywwwzxzvxxzzzzzxxyyyyxwwxzzzz"

    Returns: 2.823529411764706

  39. "dddddcccccgggrrrrddddeeeeaaauuuuunnggpooooyyyoo"

    Returns: 3.357142857142857

  40. "wwwxzzzzzaassssggghmmggnnnnnppppnnkkmmmmuuuuukkk"

    Returns: 3.0

  41. "fffffallgggggzkkkkddddcccccleeeejjjjmmnnrrryyzziii"

    Returns: 2.9411764705882355

  42. "nnzzzzzaxxaaadddwwwwdzffffsssswwwwttovnhhhhsssss"

    Returns: 2.6666666666666665

  43. "eeeaaammmddxxxdddddvvvvcccuudddddcccxxaaaadssstttt"

    Returns: 3.125

  44. "bbbgggnnnvvppgggjjjjggmmmmmxxxxxbbbccccyyyycccqqh"

    Returns: 3.0625

  45. "dddddwwwwxxxxzqqqqqllllvvvbwxxxxxiiifffclllzmmuuuu"

    Returns: 2.9411764705882355

  46. "wwwwssffiuuuuusssssooooolllsssssshhhhcccchhhhhllo"

    Returns: 3.5

  47. "llllgfpppuuuuusssuuuccyyvvvvhhhpppppuurrrwiiixxxx"

    Returns: 2.8823529411764706

  48. "jjjwwwwxxxbbbbkknnneeeellllljtttttuuuppoooowllbbbb"

    Returns: 3.125

  49. "mmmmmtppppnnnnmmmmdyyyyysvvpnnnnmmbbbrfffuuuhheeek"

    Returns: 2.6315789473684212

  50. "hhhhsvvvvvooowfwggiiavoooqooooiisssqqqqqqqetddddd"

    Returns: 2.45

  51. "jlllllttmmjjjjxxxxxtttggggkkkkktttttiiiiillllldiii"

    Returns: 3.5714285714285716

  52. "aaoooossssskkkkffaahhhhmooooolllaaaiiiitwwwwlllvv"

    Returns: 3.0625

  53. "rrrpppppyyyzyyyyooooouuuutttttwwwwlllllrrrlllzzzz"

    Returns: 3.769230769230769

  54. "ddttbuufffvccccssssssssszzzmiiiiiooooovvvvvgbbbbbp"

    Returns: 3.125

  55. "kkkkkvvheemmmmmddddvvvgjjjjsssssxxxammuuqhhhhhkkk"

    Returns: 2.8823529411764706

  56. "fffffaaaqkkklllllzzzttjaaaaeefuuuuukkkkklljjqddd"

    Returns: 2.823529411764706

  57. "eeevvvvvhhhhhhwfffffuuuuuxxxxfffffppssyyyylljjjj"

    Returns: 3.6923076923076925

  58. "eeeerrrrxxxzzzaaappmmmmwwrrroouuutqaaaayglllldj"

    Returns: 2.473684210526316

  59. "abcabcabc"

    Returns: 1.0

  60. "aaabbb"

    Returns: 3.0

  61. "dlsjflsdajfldjflajdlfajdfd"

    Returns: 1.0

  62. "aaaa"

    Returns: 4.0

  63. "aaabbbccccd"

    Returns: 2.75

  64. "a"

    Returns: 1.0

  65. "abba"

    Returns: 1.3333333333333333

  66. "aaaaaaa"

    Returns: 7.0


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: