kafei 大佬有话说 :
【编程题】求助大佬,怎么用python实现
假设有这样一个列表
[‘A’,’a’,’a’,’A’,’a’,’a’,’a’,’A’,’a’]
要统计每个A 后面的 a 数量,怎么写
比如第一个A后面是2,第二个A后面是3,第三个A后面是1
mengdodo 大佬有话说 :
楼上是个办法,或者先将这个数组拼接成字符串
AaaAaaaAa
然后在以A为分割拆成成数组得到
tobalu 大佬有话说 :
遍历一次,得到所有 A 的下标,然后两两相减再-1 得到 ‘a’ 数量
然后最后一个 A 判断下和字符序列边界的关系处理下即可
论坛大师 大佬有话说 :
Stack Overflowhttps://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif
Nothing1024 大佬有话说 :
1.检测到大A,开始循环检测小a
2.连起来然后再split(),以A为关键字,剩下的元素慢慢获取长度
beng 大佬有话说 :
spite A 然后 循环 len
KitrosMC 大佬有话说 :
Python不熟悉,php我可以写一个给你w
嗷嗷 大佬有话说 :
第一个A后面不是应该6个a才对吗?
kennyS 大佬有话说 :
mengdodo 大佬有话说 : 2021-8-28 14:02
楼上是个办法,或者先将这个数组拼接成字符串
AaaAaaaAa
然后在以A为分割拆成成数组得到
是个不错的方法,就是不知道楼主的题目:是否是单字符。
萌墨 大佬有话说 :
本帖最后由 萌墨 于 2021-8-28 21:28 编辑
不能惯着mjj,我用Java写yc010t
import java.util.*;
public class Statistics {
public static void main(String[] args) {
Collection<Character> collection = new ArrayList<Character>(Arrays.asList(‘a’, ‘a’, ‘A’, ‘a’, ‘a’, ‘a’, ‘A’, ‘a’));
int countA = 0;
int counta = 0;
Map<String, Integer> map = new HashMap<>();
for (Character c :
collection) {
if (c.equals(‘A’)) {
countA++;
counta = 0;
} else {
if (countA==0){
continue;
}
counta++;
map.put("第" + countA + "个A后有", counta);
}
}
for (String key :
map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
}