找回密码
 立即注册
搜索
查看: 3285|回复: 10

[软件] *

[复制链接]
头像被屏蔽
     
发表于 2020-8-31 20:01 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2020-9-3 21:54 来自手机 | 显示全部楼层
白班编程一般都是写伪代码,逻辑对就行了
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-9-3 22:08 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2020-9-3 22:12 | 显示全部楼层
派森侠你来辣
回复

使用道具 举报

     
发表于 2020-9-3 22:27 | 显示全部楼层
就说一个,文本文件是gb2132的时候,开文件流请指定编码是cp936,指定ansi在其他locale或者unix系统下会炸
回复

使用道具 举报

     
发表于 2020-9-3 22:57 | 显示全部楼层
  1. #! /usr/bin/python3
  2. # -*- coding: utf-8 -*-

  3. n = 1
  4. input_list = []
  5. while True:
  6.     inputChar = input('输入数组第' + str(n) + '个元素,直接回车结束输入\n')
  7.     if inputChar == '':
  8.         break
  9.     input_list.append(inputChar)
  10.     n += 1
  11.     print(input_list)

  12. countDict = {}
  13. for item in input_list:
  14.     if item in countDict:
  15.         countDict[item] += 1
  16.     else:
  17.         countDict[item] = 1

  18. maxCount = max(countDict.values())
  19. for key, value in countDict.items():
  20.     if value == maxCount:
  21.             print("出现最多的元素是:", key, ",出现次数为", value)
  22.             countDict.pop(key)
  23.             break
  24. maxCount = max(countDict.values())
  25. for key, value in countDict.items():
  26.     if value == maxCount:
  27.             print("出现第二多的元素是:", key, ",出现次数为", value)
  28.             countDict.pop(key)
  29.             break
复制代码

然而最简单的方法是from collections import Counter
回复

使用道具 举报

     
发表于 2020-9-3 23:46 | 显示全部楼层
多熟悉下标准库的容器

遍历数组放进dict里,如果key不存在就赋值1,存在累加1
遍历完后给值做个排序,取后两个就完事了
回复

使用道具 举报

     
发表于 2020-9-3 23:54 | 显示全部楼层
哈希表,请
回复

使用道具 举报

     
发表于 2020-9-4 00:34 | 显示全部楼层
本帖最后由 ustc 于 2020-9-4 00:40 编辑

lz知道hashmap吗?在python里好像是dict?这种真算easy的了,不过这题不严谨,重复次数有3个即以上相同没说怎么处理,那我也不管了

  1. class Solution {
  2.     public List<Integer>  find123(int[] a) {
  3.         //没说怎么处理,那就直接返回null了[f:037]
  4.         if (a == null || a.length < 3) {return null;}
  5.         int max = 0; int secondMax = 0;
  6.         Map<Integer, Integer> map = new HashMap<>();
  7.         List<Integer> ans = new ArrayList<>();

  8.         for (int i: a) {
  9.             int count = 0;
  10.             if (map.containsKey(i)) {
  11.                 count = 1+map.get(i);
  12.             } else {
  13.                 count = 1;
  14.             }
  15.             map.put(i, count);
  16.             if (count > max) { secondMax = max; max = count;}
  17.             else if (count == max) {secondMax = max;}
  18.             else if (count < max && count > secondMax) {secondMax =count;}
  19.         }

  20.         for (Map.Entry<Integer, Integer> entry: map.entrySet()) {
  21.             if (entry.getValue() == max || entry.getValue() == secondMax) {
  22.                 ans.add(entry.getKey());
  23.             }
  24.         }
  25.      return ans;
  26.     }
  27. }
复制代码
回复

使用道具 举报

     
发表于 2020-9-4 09:18 | 显示全部楼层
本帖最后由 hein 于 2020-9-5 10:02 编辑

为什么不用正则呢
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-9-4 09:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-7-22 22:31 , Processed in 0.048821 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表