博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
直通BAT面试算法精讲课1
阅读量:4520 次
发布时间:2019-06-08

本文共 1443 字,大约阅读时间需要 4 分钟。

1.有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。

给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class TreePrinter {public:    vector
> printTree(TreeNode* root) { vector
> as; vector
a; TreeNode*last = root; TreeNode*nlast = root; TreeNode* node; queue
qu; qu.push(root); while(!qu.empty()){ node = qu.front(); qu.pop(); a.push_back(node->val); if(node->left) {qu.push(node->left); nlast = node->left;} if(node->right) {qu.push(node->right) ;nlast = node->right;} if(last == node){ last = nlast; as.push_back(a); a.clear(); } } return as; // write code here }};
View Code

 

2.如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",A的旋转词有"12345","23451","34512","45123"和"51234"。对于两个字符串A和B,请判断A和B是否互为旋转词。

给定两个字符串AB及他们的长度lenalenb,请返回一个bool值,代表他们是否互为旋转词。

测试样例:
"cdab",4,"abcd",4
返回:true
class Rotation {public:    bool chkRotation(string A, int lena, string B, int lenb) {        // write code here        if(lena!=lenb){            return false;         }                 string C= A+A;        for(int i=0;i
View Code

 

转载于:https://www.cnblogs.com/yuguangyuan/p/6127621.html

你可能感兴趣的文章
centos7安装Lnmp(Linux+Nginx+MySql+Php+phpMyAdmin+Apache)
查看>>
iOS内存警告浅析
查看>>
Python入门---[第二篇]基础语法
查看>>
Swift---Swift5基本语法
查看>>
分析Ajax请求并抓取今日头条街拍美图
查看>>
[bzoj1452][JSOI2009]Count(树状数组)
查看>>
C/C++(指针数组)
查看>>
数据库的三大范式
查看>>
结对第二次—文献摘要热词统计及进阶需求
查看>>
swift 集合类型
查看>>
由Reference展开的学习
查看>>
第四届CCF软件能力认证
查看>>
字符数组和字符指针的差别
查看>>
简单的横向ListView实现(version 4.0)
查看>>
【转】jbdc程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法
查看>>
Java Spring学习笔记03.@component
查看>>
(十)桥接模式-代码实现
查看>>
Windows Phone开发(29):隔离存储C 转:http://blog.csdn.net/tcjiaan/article/details/7447469...
查看>>
循环单链表操作
查看>>
iOS --- Touch ID指纹解锁
查看>>