剑指offer——面试案例
来源:互联网 发布:radeon pro 580windows 编辑:程序博客网 时间:2024/05/18 15:57
剑指offer——面试案例
面试题49:把字符串转换为整数
**补:**C++中成员变量的初始化顺序只与它们在类声明中的顺序有关,而与在初始化列表中的顺序无关
/*考虑空指针,空字符串,正负号,溢出等情况,参考atoi函数*/enum Status{kValid = 0,kInvald};int g_nStatus = kVlaid;int StrToInt(const char *str){ f_nStatus = kInvalid; if (str!-NULL && *str!='\0') { bool minus = false; if (*str=="+") str++; else if (*str=="-") { str++; minus = true; } if (*str!='\0') num = StrToIntCore(str,minus); } return (int)num;}long long StrToIntCore(const char* digit,bool minus){ long long num = 0; while (digit !='\0') { if (*digit >='0' && *digit <='9') { int flag = minus ?-1:1; num = num*10+flag*(*digit-'0'); if ((!minus && num>0x7FFFFFFF) || (minus && num <(signed int)0x80000000)) { num = 0; break; } digit++; } else { num = 0; break; } } if (*digit=='\0') g_nStatus = kValid; return num;}
面试题50:树中两个结点的最低公共祖先
//获取从根结点到指定结点的路径bool GetNodePath(TreeNode* pRoot,TreeNode* pNode,list<TreeNode*> &path){ if (pRoot == pNode) return true; path.push_back(pRoot); bool found = false; vector<TreeNode*>::iterator i = pRoot>m_pChildren.begin(); while (!found && i<pRoot->m_vChildren.end()) { found = GetNodePath(*i,pNode,path); ++i; } if (!found) path.pop_back(); return found;}//得到路径的最后一个公共结点TreeNode* GetLastCommonNode(const list<TreeNode*>& path1,const list<TreeNode*>& path2){ list<TreeNode*>::const_iterator iterator1 = path1.begin(); list<TreeNode*>::const_iterator iterator2 = path2.begin(); TreeNode* pLast == NULL; while(iterator1 != path.end() && iterator2 != path2.end()) { if (*iterator1 == *iterator2) pLast == *iterato1; iterator1++; iterator2++; } return pLast;}TreeNode* GetLastCommonParent(TreeNode* pRoot,TreeNode* pNode1,TreeNode* pNode2){ if (pRoot == NULL || pNode1 == NULL || pNode2 == NULL) return NULL; list<TreeNode*>path1; GetNodePath(pRoot,pNode1,path1); list<TreeNode*>path2; GetNodePath(pRoot,pNode2,path2); return GetLastCommonNode(path1,path2);}
阅读全文
0 0
- 剑指offer——面试案例
- 《剑指Offer》学习笔记——面试
- 剑指offer——面试杂记
- 剑指Offer——中国银行面试知识储备+面试内容(Offer-2已收割)
- 剑指offer——C++面试需要的基础知识
- 剑指offer——C++面试需要的基础知识
- 剑指offer——面试中的各项能力
- 剑指offer——python实现(面试必备)
- 剑指Offer(第二版)面试案例:树中两个节点的最低公共祖先节点
- 剑指offer面试28
- 面试1~3剑指offer
- 《剑指Offer——名企面试官精讲典型编程题》已经出版
- 《剑指Offer——名企面试官精讲典型编程题(纪念版)》已经出版
- 剑指Offer——面试小提示(持续更新中)
- 剑指Offer——你真的看懂无领导小组面试了吗?
- 剑指Offer之面试位运算总结
- 剑指offer:面试的三个环节
- 剑指offer:面试的基础知识(二)
- Struts2_获取servletAPI
- Servlet
- c++ 大小写转换&&字符转数字
- Docker入门
- 数据结构-->线性表
- 剑指offer——面试案例
- 使用cProfile分析Python程序性能
- JVM参数含义
- 每天一点mysql-SQL的约束
- 移动开发----平板电脑或者小屏幕设备
- 剑指offer——新增面试题
- BZOJ 1087-互不侵犯King(状压DP)
- 算法作业:证明题(2)-- 8.8
- 使用标准输出流(system.out)和打印流 (PrintWriter)来读取txt文件