python题目用java解决

百度到的题目内容和数据来源,也顺便插个眼,有时间的时候玩下其他题目:

研发工程师-编程题(python)_Le_ander的博客-优快云博客

研发工程师L1Python学习 | 程序员灯塔 (wangt.cc)

python编程考试题目大全_彭_江南的博客-优快云博客_python编程题

LeetCode,这个神奇的网站听是听过,但本人还是第一次进入,发现也有我做过的题目

292. Nim 游戏 - 力扣(LeetCode)

推荐两本干货pdf给java新手上路(自行网上寻找):

Java核心技术·卷 I(原书第11版) .pdf

Java核心技术·卷 II (原书第11版).pdf

good,进入正题:

找到的题目基本都是python版本,还发现了我找的题目基本都来源于python经典题目,本人没学过python,发现没有java版本的又需要java实现,唯一找到的实现也是新建实体类啥的非常复杂,在考试中肯定不可能有这么多时间,决定自己手码一下,题目如下:

某公司要针对员工情况统一调薪,现有一个员工列表,包含姓名、职级、工作年限、工资信息。现要求将该列表按以下规则重新排序:

1、职级高的排在前面

2、若职级相同,按工资少的排前面

3、若工资相同,工作年限长的排前面

输入描述:
第一行输入一个整数n,表示员工列表中员工的人数

接下来的n行,分别输入员工的姓名、职级、工作年限和工资信息,各项信息用空格分隔

输出描述:
输出按要求重新排列的员工列表,每名员工信息(姓名、职级、工作年限和工资)占一行

示例
示例1
输入
6
张三 3 3 3000
李四 3 4 3000
王五 3 3 4000
赵六 4 3 3000
陆奇 4 4 4000
闫八 4 4 3980.99
输出
赵六 4 3 3000.00
闫八 4 4 3980.99
陆奇 4 4 4000.00
李四 3 4 3000.00
张三 3 3 3000.00
王五 3 3 4000.00

package cn.lcj.example;

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[][] list = new String[n][4];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 4; j++) {
                list[i][j] = in.next();
                /*if (j == 3) {
                    list[i][j] = String.format("%.2f", Double.parseDouble(list[i][3]));
                }*/
            }
        }

        Arrays.sort(list, new Comparator<String[]>() {// 该接口的compare方法,默认为从小到大排序
            //  重写该方法
            @Override
            public int compare(String[] e1, String[] e2) {// 返回值大于0会交换以实现升降序排列
                // 如果第二列元素相等,比较第四列元素,如果第四列元素相等,比较第二列
                if (e1[1].equals(e2[1])) {
                    if (e1[3].equals(e2[3])) {
                        return e2[2].compareTo(e1[2]);// 降序
                    }
                    return e1[3].compareTo(e2[3]);// 升序
                }
                return e2[1].compareTo(e1[1]);// 降序
            }
        });

        /*for (String[] e : list) {
            String str = Arrays.toString(e);
            System.out.println(str.substring(1, str.length() - 1).replaceAll(",", ""));
        }*/

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print(list[i][j] + " ");
            }
            System.out.printf("%.2f%n", Double.parseDouble(list[i][3]));
        }
    }
}

/* 测试数据
示例1
输入
6
张三 3 3 3000
李四 3 4 3000
王五 3 3 4000
赵六 4 3 3000
陆奇 4 4 4000
闫八 4 4 3980.99
应输出
赵六 4 3 3000.00
闫八 4 4 3980.99
陆奇 4 4 4000.00
李四 3 4 3000.00
张三 3 3 3000.00
王五 3 3 4000.00
*/

### 使用 Python 编写爬虫抓取 Java 编程题或考试题 为了使用 Python 抓取 Java 编程题或考试题,可以采用多种方法和技术栈。Scrapy 是一个强大的框架,特别适合用于构建复杂的网络爬虫应用[^2]。 #### 定义目标网站和需求分析 在开始之前,需明确要抓取的目标网站及其页面结构。通常这些网站会提供在线编程题目、教程或其他教育资源。了解并遵守目标网站的服务条款非常重要。 #### 准备工作环境 安装必要的依赖包: ```bash pip install scrapy requests beautifulsoup4 lxml ``` 创建一个新的 Scrapy 项目: ```bash scrapy startproject javacrawler cd javacrawler ``` #### 构建 Spider 类 定义 spider 文件 `javatitlespider.py` 来指定起始 URL 和解析逻辑: ```python import scrapy from bs4 import BeautifulSoup class JavaTitleSpider(scrapy.Spider): name = "javatitle" allowed_domains = ["example.com"] # 替换成实际域名 start_urls = [ 'http://www.example.com/java-exams', # 起始URL列表 ] def parse(self, response): soup = BeautifulSoup(response.text, 'lxml') for item in soup.select('.question-item'): # 假设每道题目的HTML标签类名为.question-item yield { 'title': item.find('h2').get_text(), # 题目标题 'content': item.find('div', class_='description').get_text(strip=True), # 题干描述 'options': [option.get_text() for option in item.select('.choices li')], # 多选选项 'answer': item.find('span', class_='correct-answer').get_text().strip() if item.find('span', class_='correct-answer') else None, } next_page = response.css('a.next-page::attr(href)').extract_first() if next_page is not None: yield response.follow(next_page, callback=self.parse) ``` 此代码片段展示了如何设置初始请求以及如何提取所需的数据字段,并处理分页导航链接[^1]。 #### 设置 Item Pipeline 进行数据清洗与存储 编辑项目的 settings.py 添加如下配置以启用管道功能: ```python ITEM_PIPELINES = {'javacrawler.pipelines.JavaCrawlerPipeline': 300} FEED_EXPORT_ENCODING = 'utf-8' ROBOTSTXT_OBEY = True DOWNLOAD_DELAY = 2 USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' ``` 接着,在 pipelines.py 中实现自定义 pipeline 方法保存到文件或者其他数据库中去。 #### 动态数据验证与异常处理机制 确保在编写过程中加入足够的错误捕捉语句来增强程序稳定性。例如当遇到 HTTP 错误码时重试一定次数;对于特定类型的 HTML 结构变化做出响应调整等措施都可以有效提升最终成果的质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值