i = 0, ans = 0;
54 size_tj = i + 1, k = i;
55 while(j < (n + n) && s[j % n] >= s[k % n]) {
56 if(s[k % n] < s[j % n]) {
81std::string s1 =
"abcab";
82assert(
duval(s1) == 3);
85std::string s2 =
"011100";
86assert(
duval(s2) == 4);
89std::vector<int> v = {5, 2, 1, 3, 4};
90assert(
duval(v) == 2);
93std::array<int, 5> a = {1, 2, 3, 4, 5};
94assert(
duval(a) == 0);
97std::deque<char> d = {
'a',
'z',
'c',
'a',
'b'};
98assert(
duval(d) == 3);
102assert(
duval(s3) == 0);
105std::vector<int> v2 = {5, 2, 1, 3, -4};
106assert(
duval(v2) == 4);
108std::cout <<
"All tests passed!"<< std::endl;
static void test()
self test implementation returns void
string manipulation algorithms
size_t duval(const T &s)
Find the lexicographically smallest cyclic shift of a sequence.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4