NI笔试——大数加法
2016-04-19 23:05
211 查看
NI笔试:
1.找出字符串第一次出现的字符。用数组建立哈希表,然后再扫描字符串并判断次数是否为1。
2.大数加法,即字符串加法。因为之前写过乘法,就以为是乘法。然后就把乘法写上去了····= =
好了,看一下加法的思路。
要不要太简单,用俩数组,先把字符串每个位转换成数字存到这俩数组里,然后对每一位进行加和。
代码是拿别人的。= =
3.第三道题是一个二维数组,二维数组里有一些数,然后找到一条和最小的路径。
我觉得和那个最长公共子序列很像。动态规划。等空下来再思考这题。
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.第三道题是一个二维数组,二维数组里有一些数,然后找到一条和最小的路径。
我觉得和那个最长公共子序列很像。动态规划。等空下来再思考这题。
相关文章推荐
- 理解RESTful架构
- exynos4412 的FIMD 介绍
- 博客搬家 from csdn to cnblog
- Android--多线程之Handler(转)
- UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
- iOS软件开发NO.1
- 用QTextBrowser实现的Web浏览器
- Android touch事件分析
- 牛客网一站通Offer考试第一题
- SUSE Linux设置时区
- C#求完数的代码
- 在 Visual C# 中,模拟登录界面与主窗体的交互
- python基础教程第5章——条件循环和其他语句
- win7 桌面图标显示不正常
- Objective-C初学:属性
- 内存池——第一章 几种常用的内存池技术
- Leetcode 343. Integer Break
- poj 1463(树形DP)
- codeforces 450B B. Jzzhu and Sequences(矩阵快速幂)
- 心得体会