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) 的空间来存储返回值的中间结果。但是我们忽略这一复杂度分析,因为这依赖于语言的细节
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)