[Windows VPS] 【编程题】求助大佬,怎么用python实现 只看楼主

假设有这样一个列表
['A','a','a','A','a','a','a','A','a']
要统计每个A 后面的 a 数量,怎么写
比如第一个A后面是2,第二个A后面是3,第三个A后面是1
楼上是个办法,或者先将这个数组拼接成字符串
AaaAaaaAa
然后在以A为分割拆成成数组得到
[aa,aaa,a]
  • 推荐 tobalu
  • 2021-8-28 20:56:50
遍历一次,得到所有 A 的下标,然后两两相减再-1 得到 'a' 数量
然后最后一个 A 判断下和字符序列边界的关系处理下即可
Stack Overflow
1.检测到大A,开始循环检测小a
2.连起来然后再split(),以A为关键字,剩下的元素慢慢获取长度
  • 5# beng
  • 2021-8-28 21:00:48
spite A 然后 循环 len
Python不熟悉,php我可以写一个给你w
  • 8# 嗷嗷
  • 2021-8-28 21:08:02
第一个A后面不是应该6个a才对吗?
  • 9# kennyS
  • 2021-8-28 21:19:58
引用: mengdodo 发表于 2021-8-28 14:02
楼上是个办法,或者先将这个数组拼接成字符串
AaaAaaaAa
然后在以A为分割拆成成数组得到

是个不错的方法,就是不知道楼主的题目:是否是单字符。
  • 10# 萌墨
  • 2021-8-28 21:23:48
本帖最后由 萌墨 于 2021-8-28 21:28 编辑

不能惯着mjj,我用Java写
  1. import java.util.*;

  2. public class Statistics {
  3.     public static void main(String[] args) {
  4.         Collection<Character> collection = new ArrayList<Character>(Arrays.asList('a', 'a', 'A', 'a', 'a', 'a', 'A', 'a'));
  5.         int countA = 0;
  6.         int counta = 0;
  7.         Map<String, Integer> map = new HashMap<>();
  8.         for (Character c :
  9.                 collection) {
  10.             if (c.equals('A')) {
  11.                 countA++;
  12.                 counta = 0;
  13.             } else {
  14.                 if (countA==0){
  15.                     continue;
  16.                 }
  17.                 counta++;
  18.                 map.put("第" + countA + "个A后有", counta);
  19.             }
  20.         }

  21.         for (String key :
  22.                 map.keySet()) {
  23.             System.out.println(key + ":" + map.get(key));
  24.         }
  25.     }
  26. }

12下一页