几道简单题,运用一些常用的C++函数,可以比较顺手
2014-06-15 14:06
423 查看
整数加1,发现当9,99或999这类数的时候,比较麻烦,因为要整个挪动,其实也可以专门处理这种情况,我猜应该也可以过,这里运用了之前掌握的reverse操作,
附上代码,逻辑可能有点丑陋:
另外还有一道简单题,因为参数是const char* 如果用strtok的话 要先拷出来,然后可能会慢一些,不知道是不是时间过不去
我立马用了之前总结的stringstream,很爽,附上代码:
树自身对称:
这是目前第一个写了两个函数的题
附上代码,逻辑可能有点丑陋:
vector<int> plusOne(vector<int> &digits) { if(digits.size()==1) { digits.at(0)+=1; if(digits.at(0)==10) { digits.at(0)=1; digits.push_back(0); } return digits; } reverse(digits.begin(),digits.end()); int i=0; digits.at(i)+=1; while(i<=digits.size()-2&&digits[i]==10) { digits[i]=0; digits[i+1]+=1; i++; } if(i==digits.size()-1) { if(digits[i]==10) { digits[i]=0; digits.push_back(1); } } reverse(digits.begin(),digits.end()); return digits; }
另外还有一道简单题,因为参数是const char* 如果用strtok的话 要先拷出来,然后可能会慢一些,不知道是不是时间过不去
我立马用了之前总结的stringstream,很爽,附上代码:
int lengthOfLastWord(const char *s) { string str=s; string tmp; istringstream istr(str); int length=0; while(istr>>tmp) { length=tmp.size(); } return length; }
树自身对称:
bool T1SymmetricT2(TreeNode* T1, TreeNode* T2) { if(T1==NULL&&T2==NULL) return true; if((T1==NULL&&T2!=NULL)||(T1!=NULL&&T2==NULL)) return false; return (T1->val==T2->val) && T1SymmetricT2 (T1->left, T2->right) && T1SymmetricT2 (T1->right, T2->left); } bool isSymmetric(TreeNode *root) { if(root==NULL) return true; return T1SymmetricT2(root->left, root->right); }
这是目前第一个写了两个函数的题
相关文章推荐
- 【书籍简评】《Python计算机视觉编程》还算可以的入门书,简单介绍了CV中的常用方法,但由于代码版本过老,有一些用3.6跑不通。
- jquery项目中一些比较常用的简单方法
- NSObject一些比较常用的方法和简单的反射
- 使用vue.js 在移动端简单实现的下拉加载更多 和一些常用的js/jq操作和vueFilter,v-if和v-show运用
- jquery项目中一些比较常用的简单方法
- 一些经典的常用ASP代码[经典简单] (2)
- PHP 时间戳及格林威治时间互相转换及一些常用的时间比较的API
- 一些非常有用的JAVA常用方法,可以省力很多啊!! xiaoyou [原作]
- 个人技术作品 - PHP 时间戳及格林威治时间互相转换及一些常用的时间比较的API
- SQL初学者可以看看的一些简单SQL语句
- 各种直销制度的一些简单利弊比较
- C的一些简单习题(5)--两个字符串比较
- 路由器常用ACL和一些简单防护
- 一些比较简单的存储过程的代码,主要是本人对这个东西不太熟,特地写下来!
- 一些常用的php简单命令代码集锦
- 一些常用的php简单命令代码集锦
- 一个比较简单驱动程序初学者可以看看
- [ASP.net]Context的一些简单运用
- 一些比较常用的j2ee组件 jar
- [ASP.net]Context的一些简单运用