编码练习题 - mindpin/docs GitHub Wiki
时间间隔展示。
编写一个方法,该方法传入一个 Time 类型的参数。计算该时间与当前时间的间隔,并根据不同的情况返回不同的文本描述。
- 如果参数时间在当前时间之后,则返回“未来”
- 如果参数时间在当前时间之前并距当前时间间隔小于 1 分钟,则返回“片刻前”
- 如果参数时间在当前时间之前并距当前时间间隔大于 1 分钟且小于 1 小时,则返回“x 分钟前”(x 是具体分钟数)
- 如果参数时间在当前时间之前并距当前时间间隔大于 1 小时且小于 2 天,则返回“x 小时前”(x 是具体小时数)
- 如果参数时间在当前时间之前并距当前时间间隔大于 2 天且小于 1 周,则返回“x 天前”(x 是具体天数)
- 如果参数时间在当前时间之前并距当前时间间隔大于 1 周且小于 1 年,则返回“x 周 y 天前”(x 是具体周数,y 是具体天数。)
- 如果参数时间在当前时间之前并距当前时间间隔大于 1 年,则返回“x 年 y 天前”
个人所得税计算
根据图片编写方法,根据传入的金额计算需要缴纳的个人所得税
宠物分配(写成 ruby 程序,不是 rails 程序)
编写两个模型 Person 和 Pet ,分别代表宠物和人。
人有名字和年龄和性别三个属性。并且有 pets 属性代表拥有的宠物。
宠物有种类和年龄量个属性。种类分为猫和狗和乌龟。
编写一个方法,传入一个人对象和一个宠物对象,根据条件判断该宠物是否适合分配给该人领养。根据判断结果返回“xxx 适合领养该宠物”或“xxx 不适合领养该宠物”(xxx 是人名)。条件如下:
如果主人年龄大于等于 60 岁,则允许领养所有宠物。
如果主人年龄大于等于 30 岁且小于 60 岁,则允许领养乌龟,只允许领养小于等于 2 岁的猫和小于等于 3 岁的狗
如果主人年龄大于等于 16 岁且小于 30 岁,则男生只允许养狗以及小于 5 岁的乌龟,女生只允许养猫以及小于 5 岁的乌龟
年龄在 16 岁以下的主人不允许领养宠物
其他没有提到允许的情况一概不允许领养
字符串分组
编写一个方法,传入一个任意长度的字符串,返回六个子字符串。
分组根据字符而定,第一组是 a-g 然后是,h-n, o-t, u-z, 0-9, 以及其他,共六个子分组。分组后需要保留原始字符串顺序。
例如,传入"this is a new begining." 则返回的六个子串为:
"aebegg","hiininin","tss","w",""," ."
石头剪子布蜥蜴史波克
参考规则说明
http://www.hjenglish.com/new/p114866/
编写一个方法,接收两个参数
传入的参数是字符串,仅限于“石头”“剪子”“布”“蜥蜴”“史波克”
如果传入的参数不属于上述字符串,返回“参数不正确”
如果传入的参数是上述字符串,则返回胜负结果
如果两个参数平局,则返回“平局”
如果第一个参数打败了第二个参数,则返回“xx 打败了 xx”(xx 是参数字符串)
如果第一个参数输给了第二个参数,则返回“xx 输给了 xx”
字符统计
编写一个方法,传入一个任意长度的字符串,返回字符串中的字符的统计结果
统计结果的格式如下
例如,传入"adbc abc cda" 则返回的统计结果如下
[
{:name => "a", :count => 3, :index => [0, 5, 11]},
{:name => "d", :count => 2, :index => [1, 10]},
{:name => "b", :count => 2, :index => [2, 6]},
{:name => "c", :count => 3, :index => [3, 7, 9]},
{:name => " ", :count => 2, :index => [4, 8]}
]
统计结果是一个数组,数组的元素顺序是根据 :name 值对应字符串的每一个字符第一次出现的顺序
:count 是该元素在字符串中出现的次数
:index 是一个数组,表示了该字符在字符串中出现的位置的角标