【发布时间】:2010-09-21 06:24:22
【问题描述】:
最近在一次采访中,有人问我一个问题,要编写一个函数,该函数将两个字符数组(整数)作为输入并返回输出字符数组。
函数签名:
char* find_sum(char* a, char* b)
如何解决这个问题?
示例场景:
find_sum("12345","32142") = "44487"
注意:
位数可以很多(1-100)。
【问题讨论】:
-
你不能将它们转换为整数,将它们相加并将结果转换回字符串吗?
-
每个输入被视为单个数字还是单个数字的数组(例如,“19”+“19”应该给出“218”还是“38”)?
-
如何解决这个问题?通过提问......如果数组的长度不同怎么办?溢出(“99”和“33”)呢?谁负责释放内存?它可以使用长度有限的静态数组吗?...
-
现在这对面试官来说是一个相当不错的采访.. :)
-
请注意,在最坏的情况下,返回的 char 与最长 char + 1 的长度相同,即 find_sum("123..n", "123..m") where n> m 的长度为 (n+1)。这将允许您分配答案所需的确切长度。