Problem Statement
Formally, you are given a
- X = (x[0], ..., x[n/2-1]) such that x[0] < x[1] < ... < x[n/2-1].
- Y = (y[0], ..., y[n/2-1]) such that y[0] < y[1] < ... < y[n/2-1].
- {x[0], ..., x[n/2-1], y[0], ..., y[n/2-1]} = {0,1,...,n-1}. That is, each of the values 0 through n-1 is present either in X or in Y.
- For each k such that 0 <= k < n/2 we have s[x[k]] = s[y[k]].
Definition
- Class:
- SPartition
- Method:
- getCount
- Parameters:
- String
- Returns:
- long
- Method signature:
- long getCount(String s)
- (be sure your method is public)
Notes
- You may assume that the return value always fits into a long.
Constraints
- s will contain between 2 and 40 characters, inclusive.
- The number of characters in s will be even.
- Each character of s will be either 'o' or 'x'.
Examples
"oxox"
Returns: 2
There are two ways to choose the pair of sequences: (x[0], x[1]) = (0, 1), (y[0], y[1]) = (2, 3) (x[0], x[1]) = (2, 3), (y[0], y[1]) = (0, 1)
"oooxxx"
Returns: 0
It is possible that there is no valid pair of sequences.
"xoxxox"
Returns: 4
The four valid pairs of sequences look as follows: (x[0], x[1], x[2]) = (0, 1, 2), (y[0], y[1], y[2]) = (3, 4, 5) (x[0], x[1], x[2]) = (3, 4, 5), (y[0], y[1], y[2]) = (0, 1, 2) (x[0], x[1], x[2]) = (0, 1, 3), (y[0], y[1], y[2]) = (2, 4, 5) (x[0], x[1], x[2]) = (2, 4, 5), (y[0], y[1], y[2]) = (0, 1, 3)
"xo"
Returns: 0
"ooooxoox"
Returns: 8
"ooxxoxox"
Returns: 8
"oo"
Returns: 2
"xx"
Returns: 2
"xo"
Returns: 0
"ox"
Returns: 0
"oxox"
Returns: 2
"xxxx"
Returns: 6
"oxxx"
Returns: 0
"oooooooooooooooooooooooooooooooooooooooo"
Returns: 137846528820
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 35345263800
"oxxooooooooooooooooooooooooooooooooooooo"
Returns: 0
"oooooooooooooooooooooooooooooooooooooxxo"
Returns: 0
"ooxxooxxooxxooxxooxxooxxooxxooxxoooooxxo"
Returns: 87420
"xooooooooooooooooooxxoooooooooooooooooox"
Returns: 4
"xoooooooooooooooooooxooooooooooooooooooo"
Returns: 2
"oooooooooooooooooooxooooooooooooooooooox"
Returns: 2
"oxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxox"
Returns: 695878
"oxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxox"
Returns: 0
"ooxxooxxooxxooxxooxxooxxooxxooxxooxxooxx"
Returns: 8013698
"ooxxooxxooxxooxxooxxooxxooxxooxxooxxoo"
Returns: 3526552
"ooooxxoxoxooooxxoxoxooooxxoxoxooooxxoxox"
Returns: 1339844
"oooxoxoo"
Returns: 12
"oxoxoxox"
Returns: 6
"xoxoxoxo"
Returns: 6
"xooxoxoxoo"
Returns: 4
"oxooxooxox"
Returns: 12
"xxxooxxxoo"
Returns: 2
"xxoxoxoxoxoo"
Returns: 34
"xoxoxoxoxoxo"
Returns: 22
"oxoxooxxxoxo"
Returns: 24
"xo"
Returns: 0
"oxxxoxxxxo"
Returns: 0
"xoxxxooxxxxooxooxoxx"
Returns: 0
"xxoxxxxxoxoxxxxoxxxxxxxxxxxxxo"
Returns: 0
"oxxxooxoooxoxxxoxxxoxxxooxxxxxxxoxoxxoxx"
Returns: 0
"oxox"
Returns: 2
"ooxoxoxoxxxo"
Returns: 2
"oxooxxoxooxxxoxxxxxo"
Returns: 2
"xoooooxoxoxoxoxooooxxoooxxoo"
Returns: 6
"xxooxoxxooxoxxooxxoxoxxxooxxoxxoxoxxooxo"
Returns: 848600
"xoxooxoxoxoxxxooxoxxooxoxxooxoxoxoxxoxoo"
Returns: 409014
"xxooooxoxoxxoxoxooxxooxoxooxooxoxxooxxxx"
Returns: 2239122
"xxoxooxxoxoxoxooxxooxoxxoxooxxxooxoxxxox"
Returns: 427276
"ooxoxxoxoxooxxoxooxxoooxoxooxoxooxoxooxx"
Returns: 796766
"xoxoxoxoxoxoxoxoxoxoxxooxxooxxoxoxooxx"
Returns: 406884
"xoxxoxoxoxoxxoxooxoxxoxoxooxxooxoxoxooxo"
Returns: 265010
"oxxoxxxxxxxxooooooxxooxx"
Returns: 21280
"xxxxooxooxoxoxooxxxxxoxxxoxxoxox"
Returns: 43652
"xxxooxoooxxxoxoxoxoxoxxxoxxoxooxoxxxoxoo"
Returns: 26350
"xxxxxxxxxxxxxxoxxoxxxxxx"
Returns: 223080
"xxxxoxxxxoxxxoxoxxxxxooxxxoxxxxxxxxxxoxx"
Returns: 9720
"xxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 2704156
"xxxxxxxxxxxxxoxxxoxoxxxxxxoxxxxx"
Returns: 1666236
"xxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 626159820
"xxxxxxoo"
Returns: 40
"xxxxxxxxxxxxxxoo"
Returns: 6864
"xxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 2704156
"ooooooxxoooooooooooooooooooooooo"
Returns: 108166240
"ooooooxxxxxxxxxooxxxxxooxxxxxxxxoooooooo"
Returns: 188176800
"ooooooxx"
Returns: 40
"xxxxxxxxxxxxxxxx"
Returns: 12870
"xxxxxxxxoxxooxoxxxooxoox"
Returns: 2032
"xxoxoxxxxxxxxxxxxxxxoxxoxxxoxooo"
Returns: 1651104
"ooxooooxoxxoxxoooxoxoxoxxxxxxxxxxxxxoooo"
Returns: 2471040
"xxxoxxxooxoxxxxxxxxxxxxxxxxxxxxxxxxxxoxo"
Returns: 120349800
"oxoxoooooooooxoxoooooooooooxoooxooxxxxoo"
Returns: 26247120
"oooxooxooooxxoxxooxooooxoooooxooooxooooo"
Returns: 1453864
"xoxoooooooooooooooooooxxxxooooxooxxxoxox"
Returns: 53461668
"oxxxoxxxoxooxxoxoxoxoxxooxxxoxoxooxoxxoo"
Returns: 64168
"xoxxoxxoxxxoxoxoxoxxoxooxoxooooxoxxxooxx"
Returns: 785136
"xoxxxoxoxxoxoxoxoxxoxoxoxooxxoooxxoxoxox"
Returns: 238704
"oxoxoxxoxoxoooxxxoxoxooxxoxoxoxoxooxoxxo"
Returns: 34800
"xxxxooxoooxooxooxoxoxoxoxoooxxooooxxxxxx"
Returns: 4363154
"oxoxxxxxoxxoxxoxoxoxoxoxoxxxoxoxooxxoooo"
Returns: 1871746
"xxxxxxooxxxoxoxooxoxooxxooxooxoxooxxoxox"
Returns: 1720566
"xxxxooooooooxooooxxxooxxxxoxooxxoooxoooo"
Returns: 7499712
"xxxxooooxxxxooxxxxxxxxxxxxxxxxxxxoooxooo"
Returns: 85861152
"ooooooxxxxooooxoxoxxooxxxxoooooxxoxooxxx"
Returns: 1398142
"oooooxooooooooxoooxxxxxxxxxxxxxxoooooxox"
Returns: 7687680
"oxxoooxoxoxoxoxoxxxoxxoooxoxxoxxxooxxo"
Returns: 5664
"xxxooxoxoxooxoxxoxxoxxoooxooxoooooxoxx"
Returns: 35808
"xooxoxooxooxoxooxoxoxoxoxoxoxoxooxoxxx"
Returns: 194350
"xoxxxooxxoxxxxooxxooxoxxoxooxooxxoxxox"
Returns: 88960
"ooxxxoxooooooooooooooxoooxooxxooxxxoox"
Returns: 2326896
"ooxxxxxxooxxxxxxooooooooxxxoooxxxxxoxx"
Returns: 5394480
"ooxxooooooxxxxxxxooxxxooooooxxxxxoxoxx"
Returns: 2016000
"ooxxxxooxxxxxxxxxxxxxoxxoxxoxxxoooooxx"
Returns: 3618160
"ooxxooooooooooooooooooooooooooooooooxxxx"
Returns: 14425929360
"oooxxxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxox"
Returns: 81930
"xxoxxooxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxox"
Returns: 0
"xxoxoooxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxox"
Returns: 359342
"xoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxooooo"
Returns: 1554752
"ooxxoooxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxxx"
Returns: 1477404
"ooooxooxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxxo"
Returns: 477402
"xxxxoooxxoxxoxoxoxoxoxoxoxoxoxoxoxoxoxxo"
Returns: 181966
"ooooooooooooooooooooooooooooooooooooooxx"
Returns: 70690527600
"xxxxxxxxxxxxxxxxxxxxoooooooooooooooooooo"
Returns: 34134779536
"ooooooooooooooooooooooooooooooooooxxxxxx"
Returns: 46672124400
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 137846528820
"xoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxo"
Returns: 695878
"ooooooooooooooooooooxxxxxxxxxxxxxxxxxxxx"
Returns: 34134779536
"ooooooooooooooooxxoooooooooooooooooooooo"
Returns: 18157819680
"oxoooxoooooxoooxoooooooooooxooxooooo"
Returns: 5682996
"oxoxoxoxoxox"
Returns: 22
"ooxxxxooxxoooxxoxoxoxoxxxooooooooooooooo"
Returns: 1711710
"xxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 11597315760
"ooooooooooooooooooooxxoooooooooooooooooo"
Returns: 17965673440
"xxxooxxxoooxoxooxooxxoooooxxoxxoxxoxooxx"
Returns: 71496
"xxooxxxxxxxxoxxxxxoxxxxxxxxxxxxxxxxxxxxx"
Returns: 1826966204
"xoxxxxxoxoxxxxxxxoxxxxoxoxoxoxoxoxxxxxxx"
Returns: 2209704
"ooxxoxoxooxxoxoxooxxoxoxooxxoxoxooxxoxox"
Returns: 932162
"ooxoxooxooxoxoxooooxxxxooxxoxoxoxoxooxxo"
Returns: 17336
"ooooooooooooooooooooooooooooooooooooooox"
Returns: 0
"ooxxooooooooooooxoooxooooooooooooooooooo"
Returns: 2314751760
"xxxoox"
Returns: 0
"oxooxxoxxxxxoooxxoxooxoooxxoooxxoxooxxox"
Returns: 210424
"oxoxoxoxoxoxxxxxoxoxoxoooooxoxoxoxoxoxox"
Returns: 52800
"xxxxxxxxxxooooooooxoxxooxxxxxoxxoxxooxoo"
Returns: 0
"xoxooxxooooooooooxxooxxoxxxxoooxoxxxxxxx"
Returns: 240
"ooooxoxoxoxxxooxxoxoxoxoxoxxxxxxoooo"
Returns: 812220
"xxxxxxoooooooooooooooooooooooooooooooooo"
Returns: 46672124400
"ooooxxxxooooxxxxooooxxxxooooxxxxooooxxxx"
Returns: 70297536