笔试强训day7

字符串中找出连续最长的数字串

题目类型:字符串的处理

题目地址:字符串中找出连续最长的数字串

描述

读入一个字符串str,输出字符串str中的连续最长的数字串

输入描述

个测试输入包含1个测试用例,一个字符串str,长度不超过255。

输出描述

在一行内输出str中里连续最长的数字串。


示例

输入:abcd12345ed125ss123456789

输出:123456789

代码展示:

复制代码
#include <iostream>
using namespace std;

int main() {
    string str;
    cin >> str;
    int n = str.size();
    //用于记录
    //begin用于记录头,end用于记录尾,count用于记录长度
    int begin=0,end=0,count=0;
    for(int i=0;i<n;i++)
    {
        int j=i;
        if(str[i] <= '9' && str[i] >= '0')
        {
            //对下一个位置进行判断
            while(j+1<n && str[j+1] <= '9' && str[j+1] >= '0')
            {
                j++;
            }
        }
        //对比长度
        if(j-i>count)
        {
            begin = i;
            end = j;
            count = j-i;
        }
        //i跳到j,减少运算
        i = j;
    }
    for(int i=begin;i<=end;i++)
    {
        cout << str[i];
    }

}
// 64 位输出请用 printf("%lld")

岛屿数量

题目分类:搜索

题目地址:岛屿数量

描述

给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。

岛屿:相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。

例如:

输入

\[1,1,0,0,0\], \[0,1,0,1,1\], \[0,0,0,1,1\], \[0,0,0,0,0\], \[0,0,1,1,1

]

对应的输出为3

(注:存储的01数据其实是字符'0','1')


示例1

输入:[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]

返回值:3

示例2

输入:[[0]]

返回值:0

示例3

输入:[[1,1],[1,1]]

返回值:1

代码展示

复制代码
class Solution {
public:
    int n,m;
    int dx[4] = {0,0,1,-1};
    int dy[4] = {1,-1,0,0};
    bool vis[205][205];

    void dfs(vector<vector<char> >& grid,int i,int j)
    {
        vis[i][j] = true;
        for(int t=0;t<4;t++)
        {
            int x = i + dx[t],y = j + dy[t];
            if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y] == '1' && !vis[x][y])
            {
                dfs(grid,x,y);
            }
        }
    }

    int solve(vector<vector<char> >& grid) {
      
        n = grid.size(),m=grid[0].size();
        int ans = 0;
        
        memset(vis, false, sizeof(vis));
        
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                if(grid[i][j] == '1' && !vis[i][j])
                {
                    ans++;
                    dfs(grid,i,j);
                }
            }
        }
        return ans;
    }
};

拼三角

题目地址:拼三角

题目描述

给出6根棍子,能否在选出3根拼成一个三角形的同时剩下的3根也能组成一个三角形?

输入描述

首先在一行中给出一个 t,1≤t≤,代表测试数据的组数

接下来t行,每行给出6个数字代表棍子长度,棍子长度为正且小于

输出描述

在一行中输出 "Yes" or "No"


示例1

输入

2

1 1 1 1 1 1

1 2 3 4 5 6

输出

Yes

No

代码展示

复制代码
#include<iostream>
#include<algorithm>
using namespace std;

int t;
int arr[6];
int main()
{
    cin >> t;
    while(t--)
    {
        for(int i=0;i<6;i++)cin >> arr[i];
        sort(arr,arr+6);
        if(arr[0]+arr[1]>arr[2] && arr[3]+arr[4]>arr[5]||
           arr[0]+arr[2]>arr[3] && arr[1]+arr[4]>arr[5]||
           arr[0]+arr[3]>arr[4] && arr[1]+arr[2]>arr[5]||
           arr[0]+arr[4]>arr[5] && arr[1]+arr[2]>arr[3])
        {
            cout << "Yes" << endl;
        }
        else cout << "No" << endl;
    }
    return 0;
}
相关推荐
fie88895 分钟前
MATLAB中LASSO方法的特征矩阵优化与特征选择实现
开发语言·matlab·矩阵
仰泳的熊猫7 分钟前
题目1433:蓝桥杯2013年第四届真题-危险系数
数据结构·c++·算法·蓝桥杯·深度优先·图论
平哥努力学习ing8 分钟前
补充 part 1——防御性编程
算法
LilySesy9 分钟前
【SAP-MOM项目】二、接口对接(中)
开发语言·python·pandas·restful·sap·abap
零度@12 分钟前
专为 Java 开发者 整理的《Python编程:从入门到实践》前8章核心内容
java·开发语言·windows·python
Trouvaille ~16 分钟前
【Linux】线程同步与互斥(四):线程池与任务管理
linux·运维·服务器·c++·操作系统·线程池·日志系统
nbsaas-boot16 分钟前
架构设计怎么做:一套可复用、可落地的方法论
java·开发语言·微服务
骆驼爱记录17 分钟前
Word表格题注自动设置全攻略
开发语言·c#·自动化·word·excel·wps·新人首发
wbs_scy18 分钟前
C++:智能指针完全指南(原理、用法与避坑实战,从 RAII 到循环引用)
开发语言·c++·算法
无人装备硬件开发爱好者20 分钟前
Python + Blender 5.0 几何节点全栈实战教程1
开发语言·python·blender