欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23

程序员文章站 2023-12-24 22:04:45
...

KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
思路:
这道题巨坑,我本来用看到题后用vector存储所有课程,然后排序,贪心遍历。
后来一直提示内存超出限制
索性直接贪心遍历判断,不存储也不排序,AC

代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int s, e;
    int temp = -1;
    while(scanf("%d,%d", &s, &e) != EOF)
    {
        if(s < temp)
        {
            printf("false\n");
            return 0;
        }
        temp = e;
    }
    printf("true\n");
    return 0;
}

KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
思路:
1. 遍历判断字符串是否是回文串
2. 情况一,如果是,不管是‘a’ 还是’b’,全部当成一组输出,即全是1
3. 情况二,如果不是,遇到‘a’ 输出1,遇到’b’,输出2

代码:

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int main()
{
    string s;
    cin >> s;
    bool flag = true;
    for(int i=0,j=s.size()-1; i<j; ++i,--j)//判断是否是回文串
    {
        if(s[i] != s[j])
        {
            flag = false;
            break;
        }
    }
    if(flag)//是回文串,情况一
    {
        for(int i=0; i<s.size()-1; ++i)
        {
            printf("1,");
        }
        printf("1\n");
    }
    else//不是回文串,情况二
    {
        for(int i=0; i<s.size()-1; ++i)
        {
            if(s[i] == 'a')
                printf("1,");
            else
                printf("2,");
        }
        if(s[s.size()-1] == 'a')
            printf("1\n");
        else
            printf("2\n");
    }
    return 0;
}

KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
KEEP 2019校招提前批 Java工程师 笔试编程题-2018.08.23
思路:
这道题好像是由“LeetCode 695. Max Area of Island岛屿最大面积” 改编的,只是题目中规定只能是矩形,这点儿暂时还没想好方法,回头再补。
大概率就是DFS加上向右和向下递归。
牛客上一个讨论的链接,点击,,不一定对。
这道题和头条笔试第一题世界杯开幕式有点儿像,贴上一个链接,点击
Leetcode 695 题解,自行搜索吧

上一篇:

下一篇: