当前位置: 首页 > news >正文

Golang每日一练(leetDay0061) 表列序号、阶乘后的零

目录

171. Excel 表列序号 Excel Sheet Column Number  🌟

172. 阶乘后的零 Factorial Trailing Zeroes  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


171. Excel 表列序号 Excel Sheet Column Number

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。

例如:

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

示例 1:

输入: columnTitle = "A"
输出: 1

示例 2:

输入: columnTitle = "AB"
输出: 28

示例 3:

输入: columnTitle = "ZY"
输出: 701

提示:

  • 1 <= columnTitle.length <= 7
  • columnTitle 仅由大写英文组成
  • columnTitle 在范围 ["A", "FXSHRXW"] 内

代码:

package mainimport "fmt"func titleToNumber(columnTitle string) int {res := 0for i := range columnTitle {res *= 26res += int(columnTitle[i] - 'A' + 1)}return res
}func main() {fmt.Println(titleToNumber("A"))fmt.Println(titleToNumber("AB"))fmt.Println(titleToNumber("ZY"))
}

输出:

1
28
701

反向转换见leetcode168题,两个函数对比:

```golang
func convertToTitle(columnNumber int) string {
    ans := ""
    for columnNumber > 0 {
        mod := (columnNumber - 1) % 26
        ans = string('A'+mod) + ans
        columnNumber = (columnNumber - 1) / 26
    }
    return ans
}

func titleToNumber(columnTitle string) int {
    ans := 0
    for i := range columnTitle {
        n := int(columnTitle[i] - 'A' + 1)
        ans = ans*26 + n
    }
    return ans
}
```


172. 阶乘后的零 Factorial Trailing Zeroes

给定一个整数 n ,返回 n! 结果中尾随零的数量。

提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1

示例 1:

输入:n = 3
输出:0
解释:3! = 6 ,不含尾随 0

示例 2:

输入:n = 5
输出:1
解释:5! = 120 ,有一个尾随 0

示例 3:

输入:n = 0
输出:0

提示:

  • 0 <= n <= 10^4

进阶:你可以设计并实现对数时间复杂度的算法来解决此问题吗?

代码:

package mainimport "fmt"func trailingZeroes(n int) int {count := 0for i := 5; i <= n; i *= 5 {count += n / i}return count
}func main() {fmt.Println(trailingZeroes(3))fmt.Println(trailingZeroes(5))fmt.Println(trailingZeroes(0))fmt.Println(trailingZeroes(20))
}

输出:

0
1
0
4

原理:

阶乘 n! = 1*2*3*......*(n-1)*n

这个式子中,因子 5 的个数只有5,0结尾的数才有,而因子2每个偶数都会有,包含的因子 2 的个数肯定多于因子 5 的个数,因此因子 5 的个数决定阶乘式尾数 0 的个数。


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/ 

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

http://www.lryc.cn/news/67185.html

相关文章:

  • 深度解析C++异常处理机制:最佳实践、性能分析和挑战
  • 【Spring事务】Spring事务事件控制,解决业务异步操作
  • Java 中的注释有哪些?
  • yolov4
  • 金融学第二版笔记第一章1.1
  • [架构之路-193]-《软考-系统分析师》-2-应用数学 - 项目周期与关键路径(PERT图、甘特图、单代号网络图、双代号网络图)
  • 滋灌中小企业,分销伙伴和华为来做“送水人”
  • 面试华为测试岗,收到offer后我却毫不犹豫拒绝了....
  • 深入了解浮点型变量输入与输出
  • Vector - CAPL - CANoe硬件配置函数 - 03
  • 单开网页应用利器 - BroadcastChannel
  • OpenCv更改颜色空间以及图像阈值
  • (邱维声)高等代数课程笔记:基,维数与坐标
  • Spring Security + Jwt 集成实现登录
  • yolov5 用自己的数据集进行训练
  • 1951-2023最新中国基础地理信息,包括水系、行政区、DEM高程、气象站经纬位置、土地利用,这些数据获取方法介绍
  • CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本
  • 实验二十、压控电压源二阶 LPF 幅频特性的研究
  • 类和对象【C++】【中篇】
  • 2.SpringBoot运维实用篇
  • 【c++】浅讲引用
  • CSS布局基础(文字[行内<块>]与行内[块]垂直对齐方式 文字溢出显示省略号)
  • AI自动写文章_免费在线原创文章生成器
  • Java阶段二Day15
  • 从月薪3000到月薪20000,自动化测试应该这样学...
  • Python魔法方法 单例模式
  • 计算机网络基础知识(三)—— 什么是OSI七层模型?
  • Python(符号计算常微分方程)谐振子牛顿运动方程
  • OpenCL编程指南-1.2OpenCL基本概念
  • 使用 ChatGPT 辅助学习——为自己找一个老师