笔试强训day07



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

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
const int N = 500;
char s[N];
bool check(char c) {
    return c >= '0' && c <= '9';
}
int main() {
    scanf("%s", s);
    int l = -1, r = -1;
    int n = strlen(s);
    int left = 0, right = -1;
    while (left < n) {
        if (check(s[left])) {
            int ll = left;
            while (left < n && check(s[left]))++left;
            right = left;
            if (right - ll > r - l) {
                l = ll, r = right;
            }
        }
        ++left;
    }
    for (int i = l; i < r; ++i)cout << s[i];
    return 0;
}


岛屿数量

cpp 复制代码
class Solution {
private:
    int dx[4] = {1,-1,0,0},dy[4] = {0,0,1,-1};
    bool vis[210][210]{};
    int n,m;
    void dfs(int i,int j,vector<vector<char> >&grid)
    {
        vis[i][j] = true;
        for(int k = 0;k<4;++k)
        {
            int x = i+dx[k],y = j+dy[k];
            if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y]=='1'&&vis[x][y]==false)
            {
                dfs(x,y,grid);
            }
        }
    }
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>> 
     * @return int整型
     */
    int solve(vector<vector<char> >& grid) {
        // write code here
        int cnt = 0;
        n = grid.size(),m =grid[0].size();
        for(int i = 0;i<n;++i)
        {
            for(int j = 0;j<m;++j)
            {
                if(grid[i][j] == '1' && vis[i][j]==false)
                {
                    dfs(i,j,grid);
                    ++cnt;
                }
            }
        }
        return cnt;
    }
};


拼三角

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
const int N = 10;
int arr[N];

int main()
{
    int t;
    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;
}

相关推荐
我要学编程(ಥ_ಥ)11 分钟前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先
埃菲尔铁塔_CV算法13 分钟前
FTT变换Matlab代码解释及应用场景
算法
许野平1 小时前
Rust: enum 和 i32 的区别和互换
python·算法·rust·enum·i32
chenziang11 小时前
leetcode hot100 合并区间
算法
chenziang11 小时前
leetcode hot100 对称二叉树
算法·leetcode·职场和发展
szuzhan.gy2 小时前
DS查找—二叉树平衡因子
数据结构·c++·算法
一只码代码的章鱼2 小时前
排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)
数据结构·算法·排序算法
青い月の魔女2 小时前
数据结构初阶---二叉树
c语言·数据结构·笔记·学习·算法
我要出家当道士3 小时前
Nginx单向链表 ngx_list_t
数据结构·nginx·链表·c
林的快手3 小时前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode