zoukankan      html  css  js  c++  java
  • Excel Sheet Column Title

    Given a positive integer, return its corresponding column title as appear in an Excel sheet.

    For example:

        1 -> A
        2 -> B
        3 -> C
        ...
        26 -> Z
        27 -> AA
        28 -> AB 
    52 -> AZ

    网友说:

    Excel序是这样的:A~Z, AA~ZZ, AAA~ZZZ, ……

    本质上就是将一个10进制数转换为一个26进制的数

    注意:由于下标从1开始而不是从0开始,因此要减一操作。

    注意是转换是从1开始计数的,不是从0开始的,所以不是直接地做26进制转换那么简单,需要中间做一些变换。试了几次, 比如 26 - Z, 52->AZ,试出了正确的代码。

     1 class Solution {
     2 public:
     3     string convertToTitle(int n)
     4     {
     5         int val=n;
     6         string res;
     7         char begin='A';
     8         for(;val!=0;)
     9         {
    10             char ch;
    11             int temp=(val-1)%26;
    12             ch=begin+temp;    //这个地方告诉自己字符运转
    13             res=ch+res;          //这儿看仔细字符和string的顺序,可如此
    14             val =(val-1)/26;     //这儿val减1之后再去除,自己就是输入26之后错误,通过测试用例才发现的!!
    15         }
    16         return res;
    17     }
    18 };    

    论坛里见到这个问题:如何把string的元素逆序?

    我直接想到的是利用反向迭代器reverse_iterator:rbegin()和rend():

    1. string str1("1234567890");  
    2. string str2(str1.rbegin(), str1.rend());  
    手里拿着一把锤子,看什么都像钉子,编程界的锤子应该就是算法了吧!
  • 相关阅读:
    mysql基本用法
    linux基本指令
    servlet的生命周期
    day 15 笔记
    day 14 作业
    考试二
    day 14
    day 12 zuoye
    day 13
    day 12
  • 原文地址:https://www.cnblogs.com/chess/p/5076758.html
Copyright © 2011-2022 走看看