This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub dgcnz/cp-library
#include "cplib/string/utils.hpp"
#ifndef CPLIB_STRING_UTILS_HPP #define CPLIB_STRING_UTILS_HPP #include <string> #include <vector> namespace cplib { using namespace std; namespace bounded_lexicographical { struct compare { bool operator()(string a, string b) const { if (a.size() == b.size()) return a < b; return a.size() < b.size(); } }; string next(string s) { if (s == "") return "a"; int i = s.size() - 1; while (s[i] == 'z' && i >= 0) s[i--] = 'a'; if (i == -1) s.push_back('a'); else s[i]++; return s; } }; // namespace bounded_lexicographical namespace lexicographical { struct compare { bool operator()(string a, string b) const { return a < b; } }; string next(string s) { if (s == "") return "a"; int i = s.size() - 1; while (s[i] == 'z' && i >= 0) i--; if (i == -1) s.push_back('a'); else s[i]++; return s; } }; // namespace lexicographical /* * @brief Checks if vector is a palindromic sequence * @param a vector to be checked for */ template <typename T> bool is_palindrome(vector<T> const &a) { return a == vector<T>(a.rbegin(), a.rend()); } /* * @brief Checks if string is a palindromic sequence * @param a string to be checked for */ bool is_palindrome(string const &a) { return a == string(a.rbegin(), a.rend()); } }; // namespace cplib #endif // CPLIB_STRING_UTILS_HPP
#line 1 "cplib/string/utils.hpp" #include <string> #include <vector> namespace cplib { using namespace std; namespace bounded_lexicographical { struct compare { bool operator()(string a, string b) const { if (a.size() == b.size()) return a < b; return a.size() < b.size(); } }; string next(string s) { if (s == "") return "a"; int i = s.size() - 1; while (s[i] == 'z' && i >= 0) s[i--] = 'a'; if (i == -1) s.push_back('a'); else s[i]++; return s; } }; // namespace bounded_lexicographical namespace lexicographical { struct compare { bool operator()(string a, string b) const { return a < b; } }; string next(string s) { if (s == "") return "a"; int i = s.size() - 1; while (s[i] == 'z' && i >= 0) i--; if (i == -1) s.push_back('a'); else s[i]++; return s; } }; // namespace lexicographical /* * @brief Checks if vector is a palindromic sequence * @param a vector to be checked for */ template <typename T> bool is_palindrome(vector<T> const &a) { return a == vector<T>(a.rbegin(), a.rend()); } /* * @brief Checks if string is a palindromic sequence * @param a string to be checked for */ bool is_palindrome(string const &a) { return a == string(a.rbegin(), a.rend()); } }; // namespace cplib