考研复试笔记

相同的树

题目:

在这里插入图片描述

代码:

class Solution {
    
    
public:
    bool isSameTree(TreeNode* p, TreeNode* q) {
    
    
        if (p == nullptr && q == nullptr) {
    
    
            return true;
        } else if (p == nullptr || q == nullptr) {
    
    
            return false;
        } else if (p->val != q->val) {
    
    
            return false;
        } 
        
        else {
    
    
            return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
        }
    }
};

杨辉三角

题目:

在这里插入图片描述

代码:

#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

//substr 左右都是闭区间 

int main(){
    
    
	int numrows;
	scanf("%d",&numrows);
	
	vector<vector<int>> ret(numrows);
	for(int i=0;i<numrows;i++){
    
    
		// i=0时有1个元素
		// i=1时有2个元素 
		ret[i].resize(i+1);
		ret[i][0] = ret[i][i] = 1;
		for(int j=1;j<i;j++){
    
    
			ret[i][j] = ret[i-1][j] + ret[i-1][j-1];
		}
	}
	for(int i=0;i<numrows;i++){
    
    
		for(int j=0;j<=i;j++){
    
    
			printf("%d ",ret[i][j]);
		}
		printf("\n");
	}
	return 0;
} 

验证回文串

在这里插入图片描述

题目:

在这里插入图片描述

代码:

#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

//substr 左右都是闭区间 

int main(){
    
    
	// 输入 
	char str[200];
	fgets(str,200,stdin);
	string s = str;
	s.pop_back();
	
	// 处理过程 
	string sgood; 
	for(char ch:s){
    
    
		// 如果是字母或者是数字 
		if (isalnum(ch)){
    
    
			sgood += tolower(ch);
		}
	}
	
	//字符串翻转 
	string sgood_rev(sgood.rbegin(),sgood.rend());
	
	printf("%s\n",sgood_rev.c_str()); 
	printf("%d",sgood==sgood_rev);
	return 0; 
} 

只出现一次的数字

题目

在这里插入图片描述

代码

#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>

using namespace std;

//substr 左右都是闭区间 

int main(){
    
    
	//输入 
	int n;
	scanf("%d",&n);
	int nums[n];
	for(int i=0;i<n;i++){
    
    
		scanf("%d",&nums[i]);
	}
	
	//处理过程
	map<int,int> count;
	for(int i=0;i<n;i++){
    
    
		auto it = count.find(nums[i]); 
		if(it!=count.end()){
    
    
			count[nums[i]]++;
		}
		else{
    
    
			count[nums[i]] = 1;
		} 
	}
	
	// 遍历map 
	for(auto it:count){
    
    
		if(it.second == 1){
    
    
			printf("%d",it.first);
			return 0;
		}
	}
} 

猜你喜欢

转载自blog.csdn.net/lijiamingccc/article/details/129343171