Python3 发表于 2020-8-31 20:01

KanaiYuu 发表于 2020-9-3 21:54

白班编程一般都是写伪代码,逻辑对就行了

ohi 发表于 2020-9-3 22:08

-SLSL- 发表于 2020-9-3 22:12

派森侠你来辣

すぴぱら 发表于 2020-9-3 22:27

就说一个,文本文件是gb2132的时候,开文件流请指定编码是cp936,指定ansi在其他locale或者unix系统下会炸

处男鉴黄师 发表于 2020-9-3 22:57

#! /usr/bin/python3
# -*- coding: utf-8 -*-

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

countDict = {}
for item in input_list:
    if item in countDict:
      countDict += 1
    else:
      countDict = 1

maxCount = max(countDict.values())
for key, value in countDict.items():
    if value == maxCount:
            print("出现最多的元素是:", key, ",出现次数为", value)
            countDict.pop(key)
            break
maxCount = max(countDict.values())
for key, value in countDict.items():
    if value == maxCount:
            print("出现第二多的元素是:", key, ",出现次数为", value)
            countDict.pop(key)
            break

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

精钢魔像 发表于 2020-9-3 23:46

多熟悉下标准库的容器

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

果壳中的松鼠 发表于 2020-9-3 23:54

哈希表,请

ustc 发表于 2020-9-4 00:34

本帖最后由 ustc 于 2020-9-4 00:40 编辑

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

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

      for (int i: a) {
            int count = 0;
            if (map.containsKey(i)) {
                count = 1+map.get(i);
            } else {
                count = 1;
            }
            map.put(i, count);
            if (count > max) { secondMax = max; max = count;}
            else if (count == max) {secondMax = max;}
            else if (count < max && count > secondMax) {secondMax =count;}
      }

      for (Map.Entry<Integer, Integer> entry: map.entrySet()) {
            if (entry.getValue() == max || entry.getValue() == secondMax) {
                ans.add(entry.getKey());
            }
      }
   return ans;
    }
}

hein 发表于 2020-9-4 09:18

本帖最后由 hein 于 2020-9-5 10:02 编辑

为什么不用正则呢

exia00raiser 发表于 2020-9-4 09:42

页: [1]
查看完整版本: *