字符

Linux文本处理工具简单使用-2

耗尽温柔 提交于 2020-03-29 11:36:04
1 查找/etc目录下大于1M且类型为普通文件的所有文件; 通过find命令加适当的参数实现: -size +1M 大于1M; -type f 普通文件; find /etc -size +1M -type f; find /etc -size +1M -type f | xargs ls -lh 2 打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份 通过tar添加适当的参数实现; data +%F 显示当天日期; tar -cf /usr/local/src/`data +%F`.tar /etc/*conf; 3 利用sed 取出ifconfig命令中本机的IPv4地址 sed命令是流编辑,对行进行逐一处理; sed -r 支持正则; sed -n 静默模式,不打印不处理的内容; [^[:digit:]]+ 非数字字符多个; ^[^[:digit:]]+ 行首非数字字符多个; [0-9.]{7,15} 数字和点匹配7到15个字符; 4 删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 通过sed命令进行匹配和替换; ^#[[:space:]]+ 以#号开头,后面至少一个空格; sed -rn 's@^#[[:space:]]+(.*)@\1@p' /etc/fstab 5

Linux学习笔记三

浪尽此生 提交于 2020-03-29 09:51:11
文件系统 1.一个文件具有两类数据 元数据 metadata 数据 data 索引中的信息为元数据,例如文件名,大小 索引指向的信息为数据 文件必定会占据空间,并且一定有文件名,但是文件名不占这个文件的空间,类似与人名不会长在身上,属于外围属性 目录索引也是也是文件,特殊的文件 2.文件名的命名规则 (1)文件名严格区分字符大小写,如file File 是不同的两个文件 (2)文件名可使用 / 以外的任意字符,并且不建议使用特殊字符 (3)文件名的长度,最长不能超过255个字符 (4)所有以 . 开头的文件,皆为隐藏文件。 3.关于字符/ 表示意义 (1)根目录 (2)路径分隔符 4.路径有两类 绝对路径:从根目录上起始的路径 相对路径:从当前目录起始的路径 5.当前目录 也叫做工作目录 working directory 查看当前目录的路径 命令是 pwd 表示方式: ./ 6.上一级目录的表示方式 . . 7.关于外部命令的运行过程,以及缓存 由于命令的可执行文件存在某个目录中 命令 ls 为例 输入ls后,shell程序会在PATH环境变量中存储的路径,逐一寻找匹配,变量中的各个路径用冒号隔开,直到找到匹配的可执行文件 但是此寻找匹配的操作,只有在第一次执行ls命令是进行,因为第一次执行后,会将该命令的正确路径记录下来,放到缓存中(缓存教师内存的一段空间)

一大波字符来袭!

旧街凉风 提交于 2020-03-29 07:12:32
节目预告: 字符的各种,操作,数据类型新讲 一预热: 重要的事情再重复: int(整数) bool(布尔判断) str(字符串) 新增 : list(列表) :大量的数据凑一块 ,","分隔 ,外套 "[ ] " tuple (元组) : 数据凑一块形成的整体,不能发生变化 , ","分隔 ,外套 "( ) " dict (字典) : 有序的数据凑一块 ,包括key(索引)和value(key对应的数据) , ","分隔 ,外套 "{ } " set (集合):一组不重合的数据凑一块, ","分隔 ,外套 "() " 二 字符串 1.字符(单一文字符号,如@ ,# ,1,2等) 2字符串(字符一串有序的排序) #字符串的索引,每个字符串都有索引,默认从左至右,0 -> n,利用[ 索引号 ]可以取得字符串对应索引的字符 例如, s = "1234" print(s[0]) >>>1    print(s[2]) >>>2 3字符串截取: s = "01234" s[x : y : Z] x: 截取起始位置,能截取该位 y: 截取结束位置,不截取末端位 Z: 步长 ,逢几个字符取一个,可以带 "-"表示从又往左取,不加默认从左往右截取 print(s[-1,-3,-1]) >>>43 print(s[0,4,2]) >>> 13 重要操作:     1. upper() 转化成大写.

记录字符串中字符出现的次数

▼魔方 西西 提交于 2020-03-29 04:58:23
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Test1 { public static void main(String[] args) { // 获取一个字符串中重复字母的个数,并依次打印出来 String string = "ababcde"; Map<Character ,Integer> map = new HashMap<Character ,Integer>(); //遍历字符长度 for(int i = 0 ; i < string.length() ; i ++){ //如果字符已经存在,在value值加一 if(map.containsKey(string.charAt(i))) map.put(string.charAt(i), map.get(string.charAt(i)) + 1); else map.put(string.charAt(i), 1); } //遍历map集合,并打印 // Iterator iterator =map.entrySet().iterator() ; // while(iterator.hasNext()){ // System.out

CSL的字符串

随声附和 提交于 2020-03-29 04:47:08
题目链接: https://ac.nowcoder.com/acm/contest/551/D 题目大意: 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助。 给定一个字符串,只含有可打印字符,通过删除若干字符得到新字符串,新字符串必须满足两个条件: 原字符串中出现的字符,新字符串也必须包含。 新字符串中所有的字符均不相同。 新字符串的字典序是满足上面两个条件的最小的字符串。 输入描述: 仅一行,有一个只含有可打印字符的字符串 s。 | s | ≤ 10 5 |s|≤105 输出描述: 在一行输出字典序最小的新字符串。 CSL的字符串 具体思路:对于每一个字符,我们保存它存在的最后位置,然后用单调栈维护一个单调递增的序列就可以了。如果当前的字符大于栈顶的字符,并且当前栈顶字符的最大位置大于当前的i,就先将这个字符弹出。AC代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 # define ll long long 4 const int maxn =2e5+100; 5 char str[maxn]; 6 map<char,int>pos; 7 map<char,int>vis; 8 int main() 9 { 10 stack<char>q; 11 scanf("%s",str+1

717. 1比特与2比特字符

a 夏天 提交于 2020-03-29 04:19:43
有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。 现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。 示例 1: 输入: bits = [1, 0, 0] 输出: True 解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。 示例 2: 输入: bits = [1, 1, 1, 0] 输出: False 解释: 唯一的编码方式是两比特字符和两比特字符。所以最后一个字符不是一比特字符。 注意: 1 <= len(bits) <= 1000. bits[i] 总是0 或 1. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/1-bit-and-2-bit-characters 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 思路: 遍历,遇到1+2遇到0+1,如果最后count等于数组长度-1,则返回True 代码: class Solution { public boolean isOneBitCharacter(int[] bits) { int count = 0 ; while(count<bits.length-1){ if(bits[count] == 0){

C语言中字符数组库函数

拈花ヽ惹草 提交于 2020-03-29 04:04:25
以下内容摘自《C程序设计教程》(美)H.M.Deitel P.J.Deitel著,薛万鹏等译,机械工业出版社。 void *memccpy (void *dest, const void *src, int c, size_t n); 从sr*所指向的对象复制*个字符到*est所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从sr*所指向的对象复制*个字符到*est所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写

c语言字符串处理函数

这一生的挚爱 提交于 2020-03-29 04:03:21
很高效的字符串处理函数: void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写。返回值是s1与s2第一个不同的字符差值。 void *memmove (void *dest, const void

字符串的全排列

ぃ、小莉子 提交于 2020-03-29 04:03:07
题目   输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 分析   用递归的思想。将第一个字符与后面的交换位置;然后固定第一个字符,求后面所有字符的排列....... 代码 1 public ArrayList<String> list = new ArrayList<String>(); 2 3 public ArrayList<String> Permutation(String str){ 4 if(str.length()==0) 5 return list; 6 char[] c = str.toCharArray(); 7 Per(c, 0, str.length()-1); 8 9 return list; 10 } 11 12 public void Per(char[] c, int low, int high){ 13 if(low>high){ 14 String s = new String(c); 15 list.add(s); 16 Collections.sort(list); 17 18 } 19 else{ 20 for(int i=low;i<=high;i++){ 21 if(i==low || c[i]!=c[low

[CSL 的字符串][栈,模拟]

左心房为你撑大大i 提交于 2020-03-29 03:38:12
链接: https://ac.nowcoder.com/acm/contest/551/D 来源:牛客网 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助。 给定一个字符串,只含有可打印字符,通过删除若干字符得到新字符串,新字符串必须满足两个条件: 原字符串中出现的字符,新字符串也必须包含。 新字符串中所有的字符均不相同。 新字符串的字典序是满足上面两个条件的最小的字符串。 输入描述: 仅一行,有一个只含有可打印字符的字符串 s。 | s | ≤ 1e5 输出描述: 在一行输出字典序最小的新字符串。 示例1 输入 bab输出 ab 示例2 输入 baca输出 bac备注: ASCII字符集包含 94 个可打印字符(0x21 - 0x7E),不包含空格。题解:使用栈进行模拟,如果当前字符已经在栈中,则跳过(保证了每个字符只存一次),否则进行如下操作:如果当前字符比栈顶元素小并且栈顶元素在之后的序列中仍有剩余,就弹出栈顶元素,持续这个过程直到栈顶元素比当前元素小或者栈顶元素没有剩余,然后把当前字符放入栈中(保证了所有字符都会存入栈中) 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstdio> 6