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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值