当前位置: 首页 > news >正文

【算法训练营】Fibonacci数列+合法括号序列判断+两种排序方法

7.29

  • Fibonacci数列
    • 题目
    • 解析
    • 代码
  • 合法括号序列判断
    • 题目
    • 题解
    • 代码
  • 两种排序方法
    • 题目:
    • 题解
    • 代码

Fibonacci数列

题目

在这里插入图片描述
题目链接: 点击跳转

解析

  • 【题目解析】:
    本题是对于Fibonacci数列的一个考察,Fibonacci数列的性质是第一项和第二项都为1,后面的项形成递归:
    F(n) = F(n - 1) + F(n - 2)。
  • 【解题思路】:
    本题可以通过先找到距离N最近的两个Fibonacci数,这两个数分别取自距离N的最近的左边一个数L和右边一个数R,然后通过min(N - L, R - N)找到最小步数。

代码

#include <iostream>
using namespace std;int main(){int N,l=0,r=0,F=0,F0=0,F1=1;cin>>N;while (true) {F=F0+F1;F0=F1;F1=F;if(F<N){l=N-F;}else{r=F-N;break;}}cout<<min(l,r)<<endl;
}
// 64 位输出请用 printf("%lld")

合法括号序列判断

题目

在这里插入图片描述
题目链接: 点击跳转

题解

题目解析】:
本题考查的是对栈的应用
【解题思路】:
用栈结构实现,栈中存放左括号,当遇到右括号之后,检查栈中是否有左括号,如果有则出栈,如果没有,则说明不匹配注意边界问题

代码

#include<stack>
class Parenthesis {
public:bool chkParenthesis(string A, int n) {if(A.empty()&&(n%2)!=0)return false;stack<char> st;for(int i=0;i<A.size();i++){if(A[i]=='('){st.push(A[i]);}else if(!st.empty()&&A[i]==')'){st.pop();}else {return false;}}if(st.empty())return true;elsereturn false;}
};

两种排序方法

题目:

030

点击跳转: 两种排序方法

题解

思路很简单,将接受的字符串都放到vector容器中,利用string的operator>=运算符重载来按ascii比较字符串,利用string的size来比较字符串的长度

代码

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
int n;
cin>>n;
vector<string> v;
v.resize(n);
for(auto& str : v)cin>>str;
bool lenSym = true, lexSym = true;
// 这里要注意从i=1开始遍历,前后比较,比较长度
for(size_t i = 1; i < v.size(); ++i)
{if(v[i-1].size() >= v[i].size()){lenSym = false;break;}
}
//比较ASCII码
for(size_t i = 1; i < v.size(); ++i)
{if(v[i-1] >= v[i]){lexSym = false;break;}
}if (lenSym&& lexSym)cout<<"both"<<endl;
else if (!lenSym && lexSym)cout<<"lexicographically"<<endl;
else if (lenSym && !lexSym)cout<<"lengths"<<endl;
else if (!lenSym&&!lexSym)cout<<"none"<<endl;
return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/99760.html

相关文章:

  • 【Rasa】入门案例学习
  • 基于java的坦克大战游戏的设计与实现--开题报告--【毕业论文】
  • 学习笔记|百度文心千帆大模型平台测试及页面交互简易代码
  • Python中的数据科学实验库有哪些?
  • 区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归多输入单输出区间预测
  • Pytorch nn.Linear的基本用法与原理详解
  • 数据结构:栈和队列的实现和图解二者相互实现
  • 深入理解C++命名空间
  • <MySQL>建表SQ和CRUD SQ脚本案例二
  • webpack基础配置
  • 宝塔面板Django项目部署(无数据库版)
  • windows默认编码格式修改
  • 原生js vue react通用的递归函数
  • vue指令-v-text和v-html
  • quartus工具篇——PLL IP核的使用
  • [Angular] Import TranslateModule in Angular 16
  • Web自动化测试高级定位xpath
  • 2023河南萌新联赛第(二)场:河南工业大学 F - 最短距离
  • 前端文件上传实践与后端处理——文件分块上传
  • SFP6012A-ASEMI代理海矽美快恢复二极管参数、尺寸、规格
  • githack的安装步骤+一次错误体验
  • 【Spring框架】SpringBoot创建和使用
  • 【C语言项目】多臂井径电子测井成像项目(一)
  • 力扣 56. 合并区间
  • 前端开发Vue3.0 标签setup语法『UI组件库』之『模态框』【业务提升必备】
  • 在CSDN学Golang云原生(Kubernetes二开)
  • chatglm-6b量化推理指标记录
  • Android kotlin系列讲解之最佳的UI体验 - Material Design 实战
  • 链表基础知识
  • process.env.npm_config_argv的值3个参数remain、cooked、original什么含义