Simple Solution
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nfrom typing import List\n\nclass Solution:\n    def splitMessage(self, message: str, limit: int) -> List[str]:\n        # \u83B7\u53D6\u6570\u5B57\u7684\u5B57\u7B26\u957F\u5EA6\n        def getLen(num: int) -> int:\n            return len(str(num))\n\n        lenOfSign = 3  # \u6807\u8BB0\u7684\u957F\u5EA6\uFF0C\u5305\u542B <, > \u548C /\n        cur = 0  # \u5206\u5272\u8FC7\u7A0B\u4E2D\u7D2F\u79EF\u7684\u7D22\u5F15\u957F\u5EA6\n        k = 0  # \u90E8\u5206\u6570\n\n        # \u8BA1\u7B97\u6700\u5C0F\u7684\u90E8\u5206\u6570\n        while lenOfSign + getLen(k) * 2 < limit and cur + len(message) + (lenOfSign + getLen(k)) * k > limit * k:\n            k += 1\n            cur += getLen(k)\n\n        # \u5206\u5272\u6D88\u606F\n        parts = []\n        idx = 0\n\n        if lenOfSign + getLen(k) * 2 < limit:\n            for j in range(1, k + 1):\n                suf_len = getLen(j) + getLen(k) + lenOfSign\n                par_len = limit - suf_len\n                if idx + par_len < len(message):\n                    parts.append(message[idx:idx + par_len] + f"<{j}/{k}>")\n                else:\n                    parts.append(message[idx:] + f"<{j}/{k}>")\n                idx += par_len\n        \n        return parts\n\n```
['Python3']