NI笔试——大数加法
NI笔试:
1.找出字符串第一次出现的字符。用数组建立哈希表,然后再扫描字符串并判断次数是否为1。
2.大数加法,即字符串加法。因为之前写过乘法,就以为是乘法。然后就把乘法写上去了····= =
好了,看一下加法的思路。
要不要太简单,用俩数组,先把字符串每个位转换成数字存到这俩数组里,然后对每一位进行加和。
代码是拿别人的。= =
void Add(char s1[],char s2[]) //需要两个字符串参数&&无返回值 { int num1[M],nm2[M]; int i,j; len1=strlen(s1); len2=strlen(s2); for(i=len1-1,j=0;i>=0;i--)//num[0]保存的是低位 num1[j++]=s1[i]-'0'; for(i=len2-1,j=0;i>=0;i--) num2[j++]=s2[i]-'0'; for(i=0;i<M;i++) { num1[i]+=num2[i]; if(num1[i]>9) { num1[i]-=10; num1[i+1]++; } } for(i=M;(i>=0)&&(num1[i]==0);i--)//找到第一个不是零的数 { if(i>=0) for(;i>=0;i--) printf("%d",num1[i]); else printf("0\n") }
3.第三道题是一个二维数组,二维数组里有一些数,然后找到一条和最小的路径。
我觉得和那个最长公共子序列很像。动态规划。等空下来再思考这题。