目录
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 main
import "fmt"
func titleToNumber(columnTitle string) int {
res := 0
for i := range columnTitle {
res *= 26
res += 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 main
import "fmt"
func trailingZeroes(n int) int {
count := 0
for 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每日一练 专栏 |