KEEP 2019校招提前批 Java工程師 筆試編程題-2018.08.23

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 題解,自行搜索吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章