Statistics

Problem Statement for "Softmatchd2"

Problem Statement

Hero has a String pattern. Each character in pattern is one of '0', '1', '2', and '3'. Hero also has a String S of wildcard characters. Each character of S is either 'a' or 'b'. You are allowed to modify S by changing some (possibly none or all) characters to their uppercase versions: that is 'a' to 'A' and 'b' to 'B'. The meaning of the wildcard characters in S is as follows:
  • 'a' matches small digits: '0' and '1'
  • 'A' matches big digits: '2' and '3'
  • 'b' matches even digits: '0' and '2'
  • 'B' matches odd digits: '1' and '3'
We say that S contains an occurrence of pattern at position j if for each valid i the wildcard character S[j+i] exists and matches the digit pattern[i]. As we already mentioned above, you are allowed to modify S by changing some of its letters to uppercase. Your goal is to maximize the total number of occurrences of pattern in your modified S. Return the largest possible number of occurrences.

Definition

Class:
Softmatchd2
Method:
count
Parameters:
String, String
Returns:
int
Method signature:
int count(String S, String pattern)
(be sure your method is public)

Constraints

  • S will contain between 1 and 50 characters, inclusive.
  • Each character in S will be either 'a' or 'b'.
  • pattern will contain between 1 and 50 characters, inclusive.
  • Each character in pattern will be between '0' and '3', inclusive.
  • pattern will be at most as long as S.

Examples

  1. "aba"

    "13"

    Returns: 2

    The string "aBA" contains two occurrences of the given pattern: one at position 0 and the other at position 1.

  2. "abbaa"

    "123"

    Returns: 2

    One string that contains two occurrences of the given pattern is the string "abBAA". One occurrence is at position 0 (small digit, even digit, odd digit), the other is at position 2 (odd digit, large digit, large digit).

  3. "aaaa"

    "1230"

    Returns: 1

  4. "ababbaaba"

    "0311"

    Returns: 3

  5. "aabbbabbbb"

    "332233"

    Returns: 2

  6. "aaaabbbababababababaaabaa"

    "02232"

    Returns: 9

  7. "ababbbbabbabbbbabbaabbbaaabbabbbabbbbaaaab"

    "131"

    Returns: 28

  8. "bbabaaabaababaaabbb"

    "21222"

    Returns: 4

  9. "aa"

    "2"

    Returns: 2

  10. "baaaaaaaaabaaaaaaaababbaaabbabbbabbaaababaaaaaaaaa"

    "31131311"

    Returns: 11

  11. "bbbabababb"

    "2301"

    Returns: 2

  12. "aaaaaaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaa"

    "11333230"

    Returns: 7

  13. "b"

    "2"

    Returns: 1

  14. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    "313100"

    Returns: 5

  15. "aaabbbabbbabbbbbbbbbbbbbbbbbbbbbbabbbbbb"

    "0311121"

    Returns: 7

  16. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    "1121220"

    Returns: 7

  17. "bbabbbbbbbbbbbbbbbb"

    "30012"

    Returns: 5

  18. "abaabaabbbabababbbabbabbabbbbba"

    "031202"

    Returns: 6

  19. "bbbbabbbbbbabababbbabbabbbbbabbbbbbbbbbbbabbbb"

    "3100202"

    Returns: 7

  20. "aaaababaaaaaaaabaabaaaaaaab"

    "131200"

    Returns: 5

  21. "bbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

    "3333303"

    Returns: 7

  22. "baabbaabaaabbbbabaaabbbabbbaaabbabababb"

    "0101302"

    Returns: 5

  23. "abbabbbbbbb"

    "1230"

    Returns: 4

  24. "bbabbaababbbbbabbabababababaabbbaabbbbbbbaaab"

    "3231002"

    Returns: 6

  25. "aaaaaaaaabaaaaaaaaaa"

    "12311"

    Returns: 4

  26. "baabaaabbbbbaaaaabababbbbaabbbbbababbbbbbbaab"

    "0332121"

    Returns: 8

  27. "abbbabaaaababbbababaababaabaaa"

    "031100"

    Returns: 6

  28. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    "0303121"

    Returns: 18

  29. "aaaaaaaaaaaaaaaabbabbaaaaaaaaabaaaaaaaaa"

    "3323002"

    Returns: 6

  30. "bbbbb"

    "33"

    Returns: 4

  31. "bbaabaaabaa"

    "0203"

    Returns: 4

  32. "aaabaabaababbbaaaabaaaaaaaabbaabaaaa"

    "321011"

    Returns: 6

  33. "abaaaababaaab"

    "2"

    Returns: 13

  34. "baaabaaaabaababbaaabbbbbbabaabaaabaabababbaa"

    "0332301"

    Returns: 7

  35. "babbabbabbbbbbbbbbb"

    "20123"

    Returns: 4

  36. "babbbabbbbbbbbbbbbabbbbbba"

    "313110"

    Returns: 5

  37. "babbbababbabbaabaaaabababaaaaabbbaabbb"

    "0023022"

    Returns: 7

  38. "aabbbaaaaaaaaaaaababbaa"

    "10030"

    Returns: 5

  39. "aaaaaaabaaaaa"

    "3030"

    Returns: 5

  40. "abaabbb"

    "220"

    Returns: 3

  41. "abaabaaaaaaabbbaaaaba"

    "30101"

    Returns: 5

  42. "aabaabbbbbbbbababbaaabbbabbbaaabbbaaabb"

    "3203210"

    Returns: 7

  43. "abaaaaabbabbbabbbbbabbabbbbabababa"

    "232310"

    Returns: 7

  44. "babaaaaaabbaaaabaaaaabababbbabbaa"

    "331320"

    Returns: 8

  45. "bbbbbbbabbabbbbbbbbbbbbbbbbbbbbbbababababbba"

    "1023300"

    Returns: 9

  46. "abb"

    "30"

    Returns: 1

  47. "babbaaaaabaaaaabbaaaaaaaaabbaaabbabaaaaaaabaaaabaa"

    "11023102"

    Returns: 7

  48. "bbbbbbbbbbbbbbbbabbbbbabbbbbbbbbababbbbbabbb"

    "3123302"

    Returns: 7

  49. "aaaaaaaaaaaaaaabaaabaaaaaaa"

    "232212"

    Returns: 5

  50. "aaaaaaaaabaaaaaaaaaaaabaaaaaaaaaabaa"

    "0101321"

    Returns: 5

  51. "abbbbab"

    "010"

    Returns: 3

  52. "abbbabbbbbbbbbabaabb"

    "3"

    Returns: 20

  53. "babababbbbbaaababa"

    "02120"

    Returns: 6

  54. "bbbbbb"

    "123"

    Returns: 2

  55. "bbbbbbbbbbbbbbbb"

    "30300"

    Returns: 3

  56. "aaaabaaaabaaaaaaaaaaaaabababaaba"

    "210221"

    Returns: 7

  57. "ababbbbabbabbbbabbaabbbaaabbabbbabbbbaaaab"

    "10302113311203220202002121"

    Returns: 1

  58. "abbbbbbbbbbbbbbbbbbbbbbbbbbabbabbbbbbbbbbbbbbbbbbb"

    "02210223"

    Returns: 11

  59. "bbbbbaabababaaababbbabaabbbbabbabababbbbba"

    "2200330"

    Returns: 7

  60. "aaaaaaaaaaaaaabaaaaababbbaabaaaaaaabbabbaaaa"

    "2321233"

    Returns: 9

  61. "abbbbbbbbbbbbbbbbbbbbbbbbbaaabbbabbbabb"

    "2110012"

    Returns: 6

  62. "aabaaaaaaaaaaaabbbaaaa"

    "31021"

    Returns: 6

  63. "aaaabbbaabaaaaaabababbabaabaabbabbaaaaa"

    "12202"

    Returns: 11

  64. "baabaaaabbbabbbabbbbbbbabaaabaaaaabbba"

    "130222"

    Returns: 7

  65. "aaaaaaaaabaaaabbaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaa"

    "1310302230113100202233331"

    Returns: 2

  66. "bbbbbbaabbbababbabbabaababbbbbabaabbbbabbabbbbbbbb"

    "10101131"

    Returns: 9

  67. "abaabbaababababaababaaaaaabaaa"

    "132231121201012"

    Returns: 2

  68. "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

    "10133110121133100103"

    Returns: 2

  69. "bbbbbbbaaabababbbbbaa"

    "20213"

    Returns: 5

  70. "bbbbbbabbabbbbabbbbbbaababbbbbbbaabbabab"

    "0311311020012202213200303321"

    Returns: 1

  71. "ababbbbbaaaababbbabbbabbbbaabaaaaabbbbb"

    "2000223"

    Returns: 8

  72. "baabbbbbbbbababb"

    "23000"

    Returns: 3

  73. "babbbbbbbabbaabbbb"

    "02331"

    Returns: 4

  74. "bbabbabbbbbbbbbbbabbbbbbbbabb"

    "3230022120203313322101"

    Returns: 1

  75. "aaabaaaaaaaaaaaaabaaaaababaaaaaaa"

    "200223100212101321011233"

    Returns: 1

  76. "aaababb"

    "002"

    Returns: 3

  77. "baaabaaaabaababbaaabbbbbbabaabaaabaabababbaa"

    "323012103021121000323301"

    Returns: 1

  78. "aabba"

    "1"

    Returns: 5

  79. "bbabbbbabbbabbaabbbbbbabbb"

    "01302001101020200102333113"

    Returns: 1

  80. "aaaaaabaaababaaa"

    "2222320233020"

    Returns: 1

  81. "bba"

    "11"

    Returns: 2

  82. "aaaaaa"

    "230"

    Returns: 2

  83. "bbababbababbbbbb"

    "32303"

    Returns: 5

  84. "aaaaaabaabaaaaaaabbbaaaabaaaaaabaaaaaaaaaabaaaaaa"

    "00212112"

    Returns: 7

  85. "baa"

    "31"

    Returns: 1

  86. "bbbbbbbbbbbbbabbbbbabbbbbbbb"

    "032131322102000102323102"

    Returns: 1

  87. "ababbbbabbabbbbabbaabbbaaabbabbbabbbbaaaab"

    "10302113311203220202002121103"

    Returns: 1

  88. "b"

    "0"

    Returns: 1

  89. "baaaaaaaaabaaaaaaaababbaaabbabbbabbaaababaaaaaaaaa"

    "11313111"

    Returns: 10

  90. "babababbbabbbbbbbabbbb"

    "030012132200330103310"

    Returns: 1

  91. "abbbabbbbababababb"

    "32300220021121323"

    Returns: 1

  92. "babbbbbabbaaabbabbbbabb"

    "223131001"

    Returns: 2

  93. "abbbabbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

    "023221030232"

    Returns: 5

  94. "baaaaaabababba"

    "11321"

    Returns: 3

  95. "baaaaaaababababaa"

    "112201122"

    Returns: 2

  96. "abbbabbbbbbbabaaabaaaaabb"

    "01113001"

    Returns: 4

  97. "abaabbbaaaabbbaabbaaabb"

    "322132"

    Returns: 5

  98. "aaabaaaababaaaaabbbbbbaaaaaaaaabaab"

    "020223020223"

    Returns: 4

  99. "ababbaabaaab"

    "3102310231"

    Returns: 1

  100. "abaabaababbaaaaaabaabaaaaaaabbbbaaaabbaaaabbabaabb"

    "11033333303232231331122"

    Returns: 2

  101. "bbabaa"

    "01010"

    Returns: 1

  102. "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

    "10133110121133100103101"

    Returns: 2

  103. "abbabaaaaaaaaabaaaaabaaaaaaaa"

    "3003013"

    Returns: 8

  104. "bbbabbabaaaabaaabbbbbaaaaababaabbaaabbbbaababb"

    "21320213202"

    Returns: 8

  105. "aabaaaaaaaaaaaaaaa"

    "100301003"

    Returns: 2

  106. "bbbaabaaaaabbbaaaabbbaabba"

    "11312211312"

    Returns: 3

  107. "ababbbbabbabbbbabbaabbbaaabbabbbabbbbaaaab"

    "131030211331120322020200212122211013020020"

    Returns: 1

  108. "aaaaaabaaaaabaababbababbabbbabbbabbbbabbbaabaabaab"

    "13111210222210032323010331223020010300121322003301"

    Returns: 1

  109. "bbbbbbbbbabbbbabbbbbabbbbbbbababbbbbbbbbbbbbbbbbb"

    "3300322030222311200122313100130023110113321210211"

    Returns: 1

  110. "aabbaabaaaaaaaaaaaabbbaaaaabbbababbaaaaabbaaabaaaa"

    "10122210021132120303102211212202312321122022031231"

    Returns: 1

  111. "aaabbabaaabaaaaaaab"

    "0111302220030122231"

    Returns: 1

  112. "ababababababababababababababababababababababababab"

    "0231032"

    Returns: 8

  113. "abababaaabbaabababbbaaabbbababababab"

    "0123012321230120303030120"

    Returns: 1


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: