330-Leetcode Excel表列名称

330-Leetcode Excel表列名称,第1张


class Solution 
{
public:
	string convertToTitle(int columnNumber) 
	{
		string ans;
		while (columnNumber > 0) {
			int a0 = (columnNumber - 1) % 26 + 1;
			ans += a0 - 1 + 'A';
			columnNumber = (columnNumber - a0) / 26;
		}
		reverse(ans.begin(), ans.end());
		return ans;
	}
};
int main()
{
	Solution A;
	string s = A.convertToTitle(55);
	for (auto& x : s)
	{
		cout << s << endl;
	}
	return 0;
}

class Solution 
{
public:
    string convertToTitle(int columnNumber) 
    {
        string ans;
        while (columnNumber > 0) 
        {
            ans += (columnNumber-1) % 26 + 'A';
            columnNumber /= 26;
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};

时间复杂度:O(log 26 columnNumber)。时间复杂度即为将 columnNumber 转换成 26 进制的位数

空间复杂度:O(1),返回值不计入空间复杂度。注意,在某些语言(比如 Java、C#、JavaScript)中字符串是不可变的,因此我们需要额外的 O(log 26 columnNumber) 的空间来存储返回值的中间结果。但是我们忽略这一复杂度分析,因为这依赖于语言的细节

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存