C++ soln with comments and clear code beats 85% soln time.
Intuition\nFirst compute number of digits of denominator and then compute the denominator itself and then actual answer i.e. vector.\n\n# Approach\nOnce we know
# Intuition\nFirst compute number of digits of denominator and then compute the denominator itself and then actual answer i.e. vector<string>.\n\n# Approach\nOnce we know the denominator it\'s just travesal over original string to compute the final answer.\n\n# Complexity\n- Time complexity:\n$$O(n)$$\n\n- Space complexity:\n$$O(n)$$\n\n# Code\n```cpp []\nclass Solution {\npublic:\n    int NoDigits(int no) {\n        if (no == 0)\n            return 0;\n        int ans = 0;\n        while (no > 0) {\n            ++ans;\n            no /= 10;\n        }\n        return ans;\n    }\n\n    // Check if the message can be split into x number of parts where number of digits in x is given. Also computes x and populate it in den.\n    bool IsPossible(const std::string& message, const int limit,\n                    const int overhead, const int digit, int& den) {\n        int i,j,k;\n        if (overhead >= limit)\n            return false;\n        j = 0;\n        const int n = message.size();\n        int cnt = 1;\n\n        while (j < n) {\n            if (NoDigits(cnt) > digit)\n                return false;\n            if (limit <= (overhead + NoDigits(cnt)))\n                return false;\n            j = j + (limit-overhead-NoDigits(cnt));\n            ++cnt;\n        }\n        --cnt;\n        den = cnt;\n        return (NoDigits(cnt) == digit);\n    }\n\n    vector<string> Compute(const std::string& message, const int limit,\n                           const int overhead, const int den) {\n        const int den_digit = NoDigits(den);\n        std::string den_part = "/" + std::to_string(den) + ">";\n        vector<string> ans;\n        std::string temp;\n        int j = 0;\n        const int n = message.size();\n        int mn;\n\n        for (int cnt = 1; cnt <= den && j < n; ++cnt) {\n            temp = "<" + std::to_string(cnt) + den_part;\n            mn = min(n-j, limit-(int)(temp.size()));\n            temp = message.substr(j, mn) + temp;\n            j += mn;\n            ans.push_back(std::move(temp));\n        }\n        return ans;\n    }\n\n    vector<string> splitMessage(string message, int limit) {\n        int overhead;\n        std::vector<string> ans;\n        int den;\n\n        for (int digit = 1; digit <= 7; ++digit) {\n            overhead = 3 + digit;\n            if (overhead + digit >= limit)\n                break;\n            if (IsPossible(message, limit, overhead, digit, den)) {\n                return Compute(message, limit, overhead, den);\n            }\n        }\n        return {};\n    }\n};\n```
['C++']