#define LEN 5104
inline int get_len(char *s){
int i=0;
while(*s++ != 0)
i++;
return i;
}
inline void swap(char *s1, char *s2){
char c = *s1;
*s1 = *s2;
*s2 = c;
}
char *reverse(char *s){
int i=0, j=get_len(s)-1;
while(i<j){
swap(&s[i], &s[j]);
i++;
j--;
}
return s;
}
char * addStrings(char * num1, char * num2){
char *ret = (char *)malloc(sizeof(char) * LEN);
int index = 0;
int len1 = get_len(num1);
int len2 = get_len(num2);
int i=0, j=0;
int flag = 0;
int tmp = 0;
reverse(num1);
reverse(num2);
while(i<len1 || j<len2 || flag){
tmp = ((i<len1) ? (num1[i]-'0') : 0) + ((j<len2) ? (num2[j]-'0') : 0) + flag;
flag = 0;
if(tmp >= 10){
flag = 1;
tmp -= 10;
}
ret[index++] = tmp + '0';
i++;
j++;
}
ret[index++] = 0;
reverse(ret);
return ret;
}
leetcode-415-字符串相加-C语言
最新推荐文章于 2023-07-17 16:15:28 发布