之前练习了一个数字转英文表述,这次写一个转中文大写的,代码已经通过OJ的测试 ,范围从 [0,999999999999]
package main
import (
"fmt"
)
var nums []rune = []rune{'零', '壹', '贰', '叁'...
JInkun
4年前 (2018-12-12) 5817℃ 0评论
2喜欢
逻辑不复杂,但是挺考验编程能力的,万亿(trillion)以下的数字都可以表示,一些比较特殊的case和百度翻译的结果对了很多次 , 数字转化为中文思路差不多 。
package main
import(
"fmt"
"math"
)
func oneToNi...
JInkun
4年前 (2018-11-20) 4995℃ 0评论
9喜欢
实现函数 void printFactors(int n),将一个正整数 n 分解为多个正整数的乘积,打印出所有可能的分解情况,但不包括重复分解的情况,比如已经打印输出 3*4 ,就不应该打印输出 4*3。测试用例如下:
input:12
output:
1 * 12
...
JInkun
7年前 (2016-02-20) 7669℃ 1评论
12喜欢
1. 如何判断链表是否有环,如果有环返回入环节点
快指针,慢指针, 快指针每次走两步,慢指针每次走一步,如果二可以者相遇,则说明有环。当二者相遇的时候,将快指针重新指向头结点,然后快慢指针每次都走一步,相遇节点即为入环节点。
2. 无环单链表判断是否相交,相交返回第...
JInkun
7年前 (2015-12-01) 2434℃ 0评论
1喜欢
有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 返回一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。 以数组为[4,3,5,4,3,3,6,7],w=3为例。因为第一个窗口[4,3,5]的最大值...
JInkun
7年前 (2015-11-27) 2920℃ 0评论
2喜欢
问题:
12个高矮不同的人,排成两排,每排6个人,每一排都从矮到高排列,且第二排都比对应的第一排的人要高,问共有多少种不同的排列方式?,如果一共有n(n为偶数)个人,一共有多少种排列方式?
解释:
这道题是一道隐藏很深的卡特兰数问题。
排列的形式如图所示,每排身高递增,...
JInkun
7年前 (2015-11-23) 2930℃ 1评论
3喜欢
求二进制串中最低位1的位置(末尾0的个数)方法很多,但是时间复杂度达到O(1)却很难,可以采用De Bruijn序列的方法。
概念解释:
1. De Bruijn序列:如果一个二进制串的长度为 2^n , 将其看成环形,首尾相连,从每一个字符开始进行n位截断,这样一...
JInkun
8年前 (2015-10-29) 2921℃ 0评论
7喜欢
若求 a^b mod c:
1.如果b是偶数, a^b mod c = (((a^2) mod c )^(b/2) ) mod c
2.如果b是奇数, a^b mod c = (((a^2) mod c )^(b/2) *a) mod c
如果要求 a^b ...
JInkun
8年前 (2015-10-18) 7355℃ 0评论
39喜欢
1.俄国农民乘法
俄国农民乘法适用于大整数的相乘运算,对于 m*n,m,n均为整数,运算基于以下原则:
1. 如果m为偶数, m * n = (m>>1) * (n<<1);
2. 如果m为奇数, m * n = (m>>1) * (n...
JInkun
8年前 (2015-10-16) 4018℃ 3评论
0喜欢
今天一个童鞋问了俺一个问题,俺沉思良久,嗯,做个博客记录一下。
题目描述:
用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为几个?
分析:
1. 先画出算术表达式 (A+B)*((A+B)/A)的二叉树表示
2. (A+B)*((A...
JInkun
8年前 (2015-09-07) 10614℃ 1评论
72喜欢