罗马数字包含以下七种字符: I V, X L,CD 和 M。
从例子上我们不难看出出去上述六种特殊情况,罗马数字就只是单纯的相加就可以准华为十进制;所以我们只需要将这六种特殊情况单独运算就可以得到最终值;
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀返回空字符串 “”。
這里笔者使用的是纵向扫描法:第一次检测所有字符串的首元素是否相同;相同存进要返回的内从中然后第二次检测所有字符串的第二个芓符,看是否相同直到出现不同位止,时间复杂度为O(M*N);
给定两个二进制字符串返回他们的和(用二进制表示)。
这里笔者使用的是直接運算字符串如果将字符串先转化成十进制,在字符串很长的情况下就会造成溢出;这里先计算出两个字符串的长度动态创建一个最长芓符串长度+2(’\0’位和预留最高位进位);然后从各自的末尾开始相加,设置一个进位位一旦两个字符串相同位加起来大于1,就使得进位位加一然后原位-2;这样就实现了使用十进制数模拟二进制;当一个字符串已经加完时,就将另一个字符串的其余位直接拷贝到返回的result里朂后再判断一下首元素(最高位)是否为0;若为0就直接从第二位返回