字符统计

Pycharm:列表操作指令

匿名 (未验证) 提交于 2019-12-02 23:51:01
nums = ['3','2','1','0']nums2 = ['-1','-2']print(nums)print(nums[0],nums[2]) #打印第0,第2个字符串#切片,顾头不顾尾print(nums[1:3]) #输出:'1','2'print(nums[-2:-1]) #负号“-”表示从列表右边开始数,“-1”表示右边第1个(也即是最后1个),同样遵从顾头不顾尾,输出:'1'print(nums[1:3:1]) #以步长1切片,输出:'2','1'print(nums[-1:]) #符号":"右边为空则默认为最后一个,输出:'0'nums.append('4') #在列表最后加上'4',输出:'3','2','1','0','4'nums.insert(1,'5') #在列表第1个(从左至右第0开始)字符前加入'5',输出:'3','5','2','1','0'nums[3]='6' #替换列表第3个为'6'nums.remove('0') #指定删除字符'0'del nums[1] #删除第1个字符nums.pop(0) #若()中为空,则默认删除列表最后一个字符,写了0则删除第0个字符nums.index('1') #字符'1'的位置标号,从左至右,从0开始数print(nums[nums.index('1')]) #输出:'1'nums.count('1'

getchar函数

匿名 (未验证) 提交于 2019-12-02 23:49:02
C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数。 下面实例展示具体用法 #include <stdio.h> int main () { char c ; printf ( "请输入字符:" ); c = getchar (); printf ( "输入的字符:" ); putchar ( c ); return ( 0 ); } 由于只能获取一个字符,故只获取r; 题目: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析: 利用while语句,条件为输入的字符不为'\n'。 /* 输入一些字符,判断字母,数字,空格和其他类型的个数*/#include <stdio.h> int main (){ char c ; int letters = 0 , numbers = 0 , spaces = 0 , others = 0 ; //初始化为0 printf ( "请输入一些字符:" ); while (( c = getchar ())!= '\n' ){ if (( c >= 'a' && c <= 'z' )||( c >= 'A' && c <= 'Z' )) letters ++; else if ( c >= '0' && c <= '9'

7-14 统计字符 (15 分)

此生再无相见时 提交于 2019-12-02 23:45:13
7-14 统计字符 (15 分) 本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。 输入格式: 输入为10个字符。最后一个回车表示输入结束,不算在内。 输出格式: 在一行内按照 letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数 的格式输出。 输入样例: aZ & 09 Az 输出样例: letter = 4, blank = 3, digit = 2, other = 1 s = '' while True: s = s + input() if len(s) == 10: break s = s + ' ' letter, blank, digit, other = (0,)*4 for i in s: if i.isalpha(): letter += 1 elif i.isspace(): blank += 1 elif i.isdigit(): digit += 1 else: other += 1 print(f"letter = {letter}, blank = {blank}, digit = {digit}, other = {other}") 来源: https://www.cnblogs.com/fnmain/p/11767801.html

统计字符串中,各个字符的个数(回炉练习)

匿名 (未验证) 提交于 2019-12-02 22:56:40
__author__ = 'ZHHT' #!/usr/bin/env python # -*- coding:utf-8 -*- #统计字符串中,各个字符的个数 #比如:"hello world" 字符串统计的结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1 a = "hello world" b = set(a) for i in b: if i == ' ': c = a.count(i) i = '空格' print("%s出现%d次"%(i,c)) else: c = a.count(i) print("%s出现%-4d次"%(i,c))    文章来源: 统计字符串中,各个字符的个数(回炉练习)

Python基础之str常用方法、for循环

匿名 (未验证) 提交于 2019-12-02 22:51:30
初学python,有些地方可能还不够明白,希望各位看官发现我的错误后留言指正! 一.字符串的索引与切片   注:字符串的第一位的索引值是0   1.索引案例 1 s = 'abcd' 2 s1 = s[0] 3 print(s1)#输出a   2.切片案例, 注:顾头不顾尾,即指定的最后一个索引的字符取不到 1 s = 'abcd' 2 s2 = s[0:3] 3 print(s2) 4 #输出abc,不包括下标是3的d   3.若字符串非常长,而且要取后面的字符串,可以从最后一位(下标是-1)开始取 1 s = 'abcd' 2 s3 = s[-1] 3 print(s3)#输出d   4.取整个字符串 1 s = 'abcd' 2 s4 = s[0:] 3 s5 = s[:] 4 print(s4,s5)#都会输出整个字符串 5 6 print(s[0:0])#输出一个空字符串,不会报错   5.步长:默认步长为1,若需要间隔固定的间距取字符,则步长=间距+1 ,格式:[首下标:尾下标:步长] 1 s = 'abcde' 2 s6 = s[0:4:2] 3 print(s6)#输出ac   6.逆序 1 s = 'abcde' 2 s7 =s[-1::-1] 3 #或者s7 =s[::-1] 4 print(s7)#输出edcba   7.指定某个下标开始逆序 1 s =

Linux基础命令---文本统计wc

匿名 (未验证) 提交于 2019-12-02 21:53:52
wc 1 、语法 2 、选项列表 选项 说明 --version 显示命令版本信息 --help 显示帮助文档 -c | --bytes 仅显示字节数 -m | --chars 仅显示字符数 -l | --lines 仅显示行数 -L | --max-line-length 显示文件中最长行的字符数 -w | words 显示单词数 3 、实例 hello world i am david love linux this code nihao ed 53 1.c 2)显示行数 [root@192 weijie]# wc -l 1.c 5 1.c 3)显示单词数 [root@192 weijie]# wc -w 1.c 11 1.c

Codeforces-17C Balance

拟墨画扇 提交于 2019-12-02 19:59:08
题目大意:   给定一个长度为n的只含有a,b,c的字符串,对该字符串进行多次(或0次)以下操作:将某个位置的字符变为其左边的或右边的。求操作后所得字符串满足3种字符两两数量差不超过1的有多少个?   n<=150 题目解法:   观察原始字符串A和变化字符串B的关系。   可以发现(赫赫 窝就无法发现)若我们将A和B均进行去重操作分别得到A' B',那么B'一定是A'的子串。它的正确性也是比较显然的(emm某个字符若想跑到前面的字符前面那么一定会将前面的字符覆盖(((   那么我们就可以将原串直接去重得到S,然后我们只需要一位一位生成新串与原串匹配即可。f[i][a][b][c]表示匹配到原串的第i位,有a个'a',b个'b',c个'c'的字符串个数,根据下一位字符的三种选择,它可以向后转移到f[nxt[i]['a']][a+1][b][c], f[nxt[i]['b'][a][b+1][c], f[nxt[i]['c'][a][b][c+1]。其中nxt数组时需要预处理,表示第i位后第一个a/b/c的位置。因为ab和abbb去重后相同显然是可以匹配到相同位置的,因此这里的nxt定义中的下一个包含其本身。   答案统计只需要在计算过程中将满足a+b+c==n且差值不大于1的f值累加起来即可。看似是O(n^4)的复杂度,实际上后面三维大概在n/3的大小

Java学习笔记-5-字符串

荒凉一梦 提交于 2019-12-02 07:01:17
String 类 统计字符串个数: 1 public static void main(String[] args) { 2 //键盘录入一个字符串数据 3 Scanner sc = new Scanner(System.in); 4 System.out.println("请输入一个字符串数据:"); 5 String s = sc.nextLine(); 6 //定义四个统计变量,初始化值都是0 7 int bigCount = 0; 8 int smallCount = 0; 9 int numberCount = 0; 10 int orther = 0; 11 //遍历字符串,得到每一个字符 12 for (int x = 0; x < s.length(); x++) { 13 char ch = s.charAt(x); 14 //拿字符进行判断 15 if (ch >= 'A' && ch <= 'Z') { 16 bigCount++; 17 } else if (ch >= 'a' && ch <= 'z') { 18 smallCount++; 19 } else if (ch >= '0' && ch <= '9') { 20 numberCount++; 21 } else { 22 orther++; 23 } 24 } 25 //输出结果 26

Shell编程四剑客之GREP

☆樱花仙子☆ 提交于 2019-12-02 04:56:00
全面搜索正则表达式(Global search regular expression(RE) ,GREP)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix/Linux的grep家族包括grep、egrep和fgrep,其中egrep和fgrep的命令跟grep有细微的区别,egrep是grep的扩展,支持更多的re元字符, fgrep是fixed grep或fast grep简写,它们把所有的字母都看作单词,正则表达式中的元字符表示其自身的字面意义,不再有其他特殊的含义,一般使用比较少。 目前Linux操作系统默认使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。其语法格式及常用参数详解如下: grep -[acinv] 'word' Filename Grep常用参数详解如下: -a 以文本文件方式搜索; -c 计算找到的符合行的次数; -i 忽略大小写; -n 顺便输出行号; -v 反向选择,即显示不包含匹配文本的所有行; -h 查询多文件时不显示文件名; -l 查询多文件时只输出包含匹配字符的文件名; -s 不显示不存在或无匹配文本的错误信息; -E 允许使用egrep扩展模式匹配。 学习Grep时,需要了解通配符、正则表达式两个概念,很多读者容易把彼此搞混淆,通配符主要用在

第一个只出现一次的字符

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-02 03:30:12
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题解 方法1: 统计所有字符出现的次数,返回第一个次数为1的数。保存可以用数组或Map等,不多解释。 方法2: 建立两个表,第一个保存当前仅出现1次的元素,另一个保存不只一次的元素,返回表1中第一个元素。   static int firstNotRepeatingChar(String str) { if(str.isEmpty()) { return -1; } char[] arr = str.toCharArray(); List<Character> list = new ArrayList<>(); //保存出现不只1次的元素 List<Character> ans = new ArrayList<>(); //保存当前仅出现了1次的元素 for(int i=0; i<arr.length; i++) { Character ch = new Character(arr[i]); if( (! list.contains(ch) ) && (! ans.contains(ch)) ) {//如果list和ans中都没有该元素,则该元素当前仅出现了1次 ans.add(ch); } else if(ans