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

版权声明:本人ZZU在校学生,文章均为个人心得,有不足之处请不吝赐教! https://blog.csdn.net/whl_program/article/details/82015665

1-1
1-2
1-3
思路:
这道题巨坑,我本来用看到题后用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;
}

2-1
2-2
2-3
2-4
2-5
思路:
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;
}

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

猜你喜欢

转载自blog.csdn.net/whl_program/article/details/82015665