58同城笔试3道题

不知道是不是58的测试样例比较少,三道题都是一次ac
第一题
import java.util.Scanner;
import java.util.Stack;

public class Main3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        String[] split = line.split(",");
        Stack<Integer> stack = new Stack<>();
        for (int i = 0; i < split.length; i++) {
            int cur = Integer.parseInt(split[i]);
            if (stack.isEmpty()) {
                stack.push(cur);
            } else {
                if (stack.peek() == cur) {
                    continue;
                } else {
                    stack.push(cur);
                }
            }
        }
        System.out.println(stack.size());
    }
}

第二题
import java.util.Scanner;

public class Main2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
        }
        // 两个数组,一个从左往右遍历,右边比左边大,则left[i+1] = left[i] + 1,否则left[i+1] = 1;
        // 一个从右往左遍历,左边比右边大,则left[i] = left[i+1] + 1,否则left[i] = 1;
        int[] leftToRight = new int[n];
        leftToRight[0] = 1;
        int[] rightToLeft = new int[n];
        rightToLeft[n-1] = 1;
        for (int i = 1; i < n; i++) {
            if (nums[i] > nums[i-1]) {
                leftToRight[i] = leftToRight[i-1] + 1;
            } else {
                leftToRight[i] = 1;
            }
        }
        for (int i = n-2; i >= 0; i--) {
            if (nums[i] > nums[i+1]) {
                rightToLeft[i] = rightToLeft[i+1] + 1;
            } else {
                rightToLeft[i] = 1;
            }
        }
        int res = 0;
        for (int i = 0; i < n; i++) {
            res += Math.max(leftToRight[i], rightToLeft[i]);
        }
        System.out.println(res);
    }
}
第三题

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();
        sc.nextLine();
        int[][] matrix = new int[m][n];
        for (int i = 0; i < m; i++) {
            String line = sc.nextLine();
            String[] split = line.split(" ");
            for (int j = 0; j < n; j++) {
                matrix[i][j] = Integer.parseInt(split[j]);
            }
        }

        //动态规划dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + matrix[i][j]
        int[][] dp = new int[m][n];
        dp[0][0] = matrix[0][0];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (i == 0 && j == 0) {
                    continue;
                }
                int minPre = Integer.MAX_VALUE;
                if (i > 0) {
                    minPre = Math.min(minPre, dp[i-1][j]);
                }
                if (j > 0) {
                    minPre = Math.min(minPre, dp[i][j-1]);
                }
                dp[i][j] = minPre + matrix[i][j];
            }
        }
        System.out.println(dp[m-1][n-1]);
    }
}


#58集团##笔试题目#
全部评论
第一题Python解法。。。   print(len(set([int(i) for i in input().split(',')])))
点赞 回复 分享
发布于 2019-09-12 21:51
mark
点赞 回复 分享
发布于 2019-09-12 22:05
你们都觉得选择题很简单的吗
点赞 回复 分享
发布于 2019-09-12 21:53
import java.util.*; //一个for循环就完了感觉都不用用栈 public class Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         String s=in.nextLine();         String[] strings=s.split(",");         if (strings.length==0){             System.out.println(0);             return;         }         if (strings.length==1){             System.out.println(1);             return;         }         int cnt=1;         for (int i=1;i<strings.length;i++){             if (!strings[i].equals(strings[i-1])){                 cnt++;             }         }         System.out.println(cnt);     } }
点赞 回复 分享
发布于 2019-09-12 21:49
第一题不是直接去重求长度就好?
点赞 回复 分享
发布于 2019-09-12 21:45
不是题少,是题太简单了😢,估计又要简历刷人了
点赞 回复 分享
发布于 2019-09-12 21:42

相关推荐

迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务