1. 求两个字符串的交集
可以采用哈希表来实现,时间复杂度只有O(N)
2. 求两个字符串的交集函数
EXCEL函数中常用符号:
1.连接符 &
连接符&又称“和号”,顾名思义就是用于连接两个值(如果有多个值就用多个&连接),把大家串起来变成连续的内容。作用同CONCATENATE合并函数。
例1:
2. 引号 " "
如例1,引用文本必须在外面套个引号""
引号内无内容表示空值或空单元格,中间若有内容则表示引用对应的文本值"文本"。
3. 通配符 *
星号*的用法较多:
①最基本的用法是作为乘号,同加、减、除号(+ - /)一样用于数学运算。②在函数的多条件应用里,意思相当于AND,表示满足几个并列的条件(取交集),如:多条件求和:=SUMPRODUCT((条件1)*(条件2)*…(条件n),求和区域)
多条件计数:=SUMPRODUCT((条件1)*(条件2)*(条件3)*…*(条件n))
③作为通配符,表示任意数量的字符串。
例2:
4. 通配符 ?
通配符?,表示任意单个字符。?代表1个字符,???代表3个字符。
例3:
例4:
5. 通配符 ~
通配符*与?对比,*可查找任意数量的字符串,?可查找任意单个字符。例如,s?t可查找“sat”和“set”,而s*d可查找“sad”和“started”。
例5:
若要查找通配符*和?本身,需要在通配符前面加第三个通配符 ~(即波浪符)。
例6:
6. 绝对引用符号 $
美元符号$表示单元格绝对引用,不加$表示相对引用,可手打输入但更建议按F4键切换绝对引用、相对引用和混合引用。
例7:
B列绝对引用,$同时锁定列和行,无论向下拉或向右拉,引用的都是$A$2单元格的数据;
C列相对引用,列和行都不锁定,向下拉公式变成=A3(显示的值也为A3),向右拉公式变成=B2(显示的值为A2);
D列混合引用,=$A2锁定A列,向右拉不会变成B2;=A$2则锁定第2行,向下拉不会变成A3。
D2的公式是=$A2(混合引用锁定列),然后右拉到E2,再一起下拉到D4:E4,所以结果如上图显示;若D2公式输入=A$2(混合引用锁定行),然后右拉到E2,再一起下拉到D4:E4,则6个单元格都显示A2。
3. 求两个字符串的交集java
import java.util.Scanner;
public class TestIncreace {
void TestInc(int n) throws Exception{
int []a = new int [n];
int sum = 0;
for(int i = 0;i < a.length;i ++){
a[i] = n % 10;
n = n / 10;
sum += a[i];
}
System.out.println(sum);
}
public static void main(String[] args) throws Exception {
try{
TestIncreace t = new TestIncreace();
System.out.println("请输入您要测试的数据:");
Scanner input = new Scanner(System.in);
int in = input.nextInt();
t.TestInc(in);//括号内为要测试的数据
}catch(Exception e){
System.out.println("非法数字");
}
}
}
4. 求2个字符串的字符交集
很多时候,小编在接到厂商供稿,要处理发布的时候大多发现文档中很不规范,全角半角错中交集,毫无章法可言,整个版面看起来很不协调,如果使用替换的方式逐一替换标点符号,工作量太大,逗号、句号、双引号、冒号什么的一大堆,也容易遗漏。
1.选中需要转换的字符之后,单击“开始”选项卡中的图标“Aa”,即“更改大小写”功能按钮,打开如图1所示列表。
2.需要将全角字符转换为半角时单击“半角”,需要将半角字符转换为全角时单击“全角”完成转换。还有英文的大小写之间的转换 。
注意事项:
虽然Excel和PowerPoint中没有以上功能。但如果需要在全角字符与半角字符之间相互转换,可以用上面介绍的方法在Word2007中完成转换,然后粘贴到Excel或PowerPoint中即可。
5. 求两个字符串的交集 python
刚好python内置有一个方法可以实现你的要求。collections模块下的Counter方法,它有个名字叫计数器。
代码:
from collections import Counter #导入方法Couter
time=Counter() #计数器实例化给变量time
a=' test 122333 python'
for i in a: #迭代出变量a的元素
time[i]+=1 #time[i]默认为零,需要加一个1
先看看time:
所以time[n](其中n为任意数)都是零,需要加一个1
测试结果:
可以看出,空格,数据,字符串都做了计数的
补充,如果你需要动态的测试,即用户输入什么就测试什么,那么可以a=input()就行,其他不变
6. 求两个字符串的交集并集c语言中
public class CollectionExample {
public static void main(String[] args) {
// 数据准备
List<Integer> list1 = new ArrayList<>();
list1.add(111);
list1.add(222);
list1.add(333);
list1.add(444);
List<Integer> list2 = new ArrayList<>();
list2.add(222);
list2.add(333);
list2.add(555);
list2.add(666);
// 取两者的交集 (222,333)
List<Integer> allWithList = list1.stream().filter(list2::contains).collect(Collectors.toList());
System.out.println("两者的交集 = " + allWithList);
// 取list1中有但是不存在list2中 list1-list2 (111,444)
List<Integer> withList1NotWithList2 = list1.stream().filter(o -> !list2.contains(o)).collect(Collectors.toList());
System.out.println("list1中有,list2中没有 = " + withList1NotWithList2);
// 取list2中有但是不存在list1中 list2-list1 (555,666)
List<Integer> withList2NotWithList1 = list2.stream().filter(o -> !list1.contains(o)).collect(Collectors.toList());
System.out.println("list2中有,list1中没有 = " + withList2NotWithList1);
// 并集
List<Integer> listAll = list1.parallelStream().collect(Collectors.toList());
List<Integer> listAll2 = list2.parallelStream().collect(Collectors.toList());
listAll.addAll(listAll2);
System.out.println("list1和list2的并集 = " + listAll);
// 去重并集
List<Integer> distinctListAll = listAll.stream().distinct().collect(Collectors.toList());
System.out.println
7. 求两个字符串的交集的方法
符号“&”可以表示“和”。
符号“&”表示意思是一个人和另外一个人之意,与and同义。如A&B,表示A与B,A和B,A×B。
短信和 Twitter 文字中,& 用来替代单词 “And”,在编程语言如 MySQL, C and C++, XML, SGML, and BASIC中,它的意思是 “与”。
8. 求两个字符串的交集,并集,差集
传统正则可以用[^1-9]来表示,仅支持单个字符的字符集取反
据我所知,只有Java的正则引擎支持单个字符的字符集排除
排除在我的引擎中就是差集操作&!,支持任意的排除,并且可以保证匹配速度
\w+ 排除 # 和 _ 和 good 的语法: {{\w+}} &! {{#|_|good}}
perl/pcre正则可以用否定断言来表示,也支持任意的排除,但是可能会严重影响匹配速度
\w+ 排除 # 和 _ 和 good 的语法: \w+(?<!#|_|good
- 相关评论
- 我要评论
-