Skip to content

crowleyeusfordv/SJTU-CS1604-hw

Repository files navigation

SJTU-CS1604-hw

2.1 - 计算天数差 题目描述 小明想要更直观地了解两个日期之间的时间距离,于是他想要编写一个程序来计算两个日期之间的天 数差。但闰年的存在让小明在编写程序的时候陷入了困难,请你帮助小明实现这个程序,其实现的功 能如下: 给定两个格式为"yyyy/mm/dd"的日期(yyyy, mm和dd均为正整数),请你输出这两个日期之间的天数 差。 请注意,你需要考虑年份中出现平年和闰年(即二月有29天)的两种情况,它们的定义如下: 公元年份非4的倍数,为365天平年。 公元年份为4的倍数但非100的倍数,为366天闰年。 公元年份为100的倍数但非400的倍数,为365天平年。 公元年份为400的倍数,为366天闰年。

示例 输入(注:在本次作业中双引号仅作为字符串类型的标识,实际输入中不会出现双引号): "2008/01/01" "2024/02/19" 输出: 5893

2.2 修改表达式得到近似值 题目描述 小明的数学老师给小明出了一道数学应用题作为随堂小测,小明在一番思考后得到了一个最终的算 式,但是他却发现算式的结果和题目的合理答案差距太大。眼看规定的时间就要结束,小明决定在算 式中添加一对括号,使算式的结果尽可能接近他预估的正确答案。(大家不要学习小明。) 本题输入为一个字符串类型的加法表达式和一个int类型的目标值tgt。其中字符串的格式为"a+b", a和b 为正整数, "+"为运算符。请你在该字符串中添加一对括号,使得该表达式的结果最接近tgt。 注: 本题目所有测试案例有且仅有唯一解。 添加括号后得到的表达式中的数字可以以0开头,如"4(05+3)2"这样的表达式是本题的合法输出。 本题中添加的括号不能在'+'的同一边,且不允许在'+'的两端添加括号, 如"4(76)+23"和"476(+)23"均为非法输出。

提示: 你可以尝试枚举所有可能的括号位置,并计算每种情况下表达式的结果与tgt的差值,然后选择最 小的差值对应的括号位置。示例 例1: 输入 "12+36" 31 输出 "1(2+3)6" 解释 1(2+3)6 = 156 = 30 (12+3)6 = 15*6 = 90 1(2+36) = 1 * 38 = 38 (12+36) = 48 其中30最接近31 例2: 输入 "123+456" 579 输出 "(123+456)"

3.3 回文恐惧症 题目描述 可怜的小明患上了回文恐惧症(Aibohphobia)。一旦看到句子中的回文词,小明就会手脚冰凉、浑身 发冷,如果整个句子是一个回文句,小明就会完全无法读完这个句子。 请你帮小明实现一个程序,该程序以一个字符串作为输入,如果整个字符串是一个回文句,则输 出"No!",如果该字符串自身不是回文句,但其中包含回文词,则将回文词删除。注: 回文句是指忽略了空格和大小写的差异之后从前往后读和从后往前读都一样的句子,如"A Santa lived as a devil at NASA"就是一个回文句。 输入字符串由若干个连续单词组成,不含标点符号,其中相邻两个单词之间由一个空格隔开。字 符串的开头和结尾都不含空格。 删除回文词后的两个相邻单词之间只保留一个空格。 在判断回文词时不区分大小写,如在"Madam"中,尽管开头和结尾的'm'大小写不同,我们仍然认 为该单词是一个回文词。 你无需考虑删除回文词后的字符串是否为回文句。 示例 例1: 输入 "Poor Xiaoming suffers from Aibohphobia" 输出 "Poor Xiaoming suffers from" 例2: 输入 "A Santa lived as a devil at NASA" 输出 "No!"

2.4 - 二十六进制字符串相乘 题目描述 在学习了二进制、十进制、十六进制等常见进制之间的转换后,小明产生了一个奇思妙想:他想要用 二十六个英文字母创建一个新的进制体系,即二十六进制。他成功地实现了这个新的进制体系,并且 还顺利地实现了二十六进制字符串的加法和减法运算。然而,小明发现实现乘法运算有些困难,于是 想请你帮助他实现二十六进制字符串的乘法运算。注: 在小明定义的二十六进制体系中,我们使用小写的英文字母a-z来表示0-25这26个数字。 二十六进制字符串的乘法运算与十进制字符串的乘法运算类似,具体实现过程可参考下图。 提示: 长度为n的字符串与长度为m的字符串相乘得到的结果的长度不会超过n+m。 你可以定义一个int变量来表示每一次相乘的进位。 测例中存在字符串表示的整数超过int范围甚至超过long long范围的情况,因此请不要将字符串转 换为整数进行运算最后再转换回字符串。 b a c × c b a _________ a a a b a c c a e


c b e c a

示例 例1: 输入 "bac" "cba" 输出 "cbeca" 例2: 输入"hello" "ieee" 输出 "cgnjcnrye"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages