精华内容
下载资源
问答
  • 1.1业务场景A主题一个主题有多个关键字,假设A一个主题主题人类,关键字为猩猩,猴子。B为命中,如一条记录命中关键字猩猩,一条记录命中猴子。 2为了统计主题,所以将主题拆分为一个主题对顶多条数据,...

    1.开发中遇到个奇葩的问题,貌似数学集合的问题,纠结了半天后来解决。
    1.1业务场景A主题表,一个主题有多个关键字,假设A表有一个主题主题人类,关键字为猩猩,猴子。B表为命中表,如一条记录命中关键字猩猩,一条记录命中猴子。
    2为了统计主题,所以将主题拆分为一个主题对顶多条数据,以关键字拆分。


    统计主题信息量:

    SELECT t.`id`,t.`name`, i.`id`,COUNT(1) FROM theme t LEFT JOIN info i ON INSTR(i.`key_word`, t.`key_word`) GROUP BY t.id


    问题来了:总计有3条数据,但是统计处理5条,命中多个关键字的信息被重复统计了,应过滤使用distinct

    SELECT a.*, COUNT(1) FROM (
    	SELECT DISTINCT t.`id` AS tid,t.`name`, i.`id` FROM theme t LEFT JOIN info i ON INSTR(i.`key_word`, t.`key_word`) 
    )a GROUP BY a.tid
    

    问题又来了,主题有信息的统计的正确,但是大象在信息表里没有出现,这是因为left jon的特性决定的,再次改进使用sum方法

    SELECT a.tid, a.name, SUM(a.cnt) FROM (
    	SELECT DISTINCT t.`id` AS tid,t.`name`, i.`id`,
    	(CASE WHEN i.`id` IS NULL THEN 0 ELSE 1 END) AS cnt
    	FROM theme t LEFT JOIN info i ON INSTR(i.`key_word`, t.`key_word`) 
    )a GROUP BY a.tid

    最后结果




    展开全文
  • 编写一个函数,利用二分查找算法在一个有序中插入一个关键字k,并保持的有序性。 分析 先在有序中利用二分查找算法查找关键字值等于或小于k的结点,m指向正好等于k的结点或l指向关键字正好大于k的结点,然后...

    题目

    编写一个函数,利用二分查找算法在一个有序表中插入一个关键字k,并保持表的有序性。

    分析

    先在有序表中利用二分查找算法查找关键字值等于或小于k的结点,m指向正好等于k的结点或l指向关键字正好大于k的结点,然后采用移动法插入k结点即可。

    本题的难点就是如何利用二分查找算法找到合适的插入位置。

    有两种情况:第一种是有序表中没有等于关键字k的结点,寻找大于k的结点即可;第二种是有序表中存在等于关键字k的结点,寻找等于k的结点即可。

    图解如下:

    将两种情况用同一部分代码来处理,定义一个标志位变量flag,用来记录是否有等于关键字k的情况,初始为0表示没有等于关键字k的情况,如果有则将flag置为1,然后退出循环,最终根据标志位flag来判断插入位置。

    代码

    核心代码:

    /* 使用二分查找在顺序表中插入元素k */ 
    void insertK(int nums[],int n,int k){
    	int mid;// 记录中间下标 
    	int low=0,high=n-1;
    	int flag=0;// 标志,用来记录是否有等于k的值 
    	int pos;// 定义的变量,为插入的位置 
    	while(low<=high&&flag==0){// 循环当low>high时跳出循环 
    		mid=(low+high)/2;
    		if(nums[mid]==k){
    			flag=1;// 如果发现有关键字等于k,则将标志flag置为1,退出循环然后插入k 
    		}else if(nums[mid]>k){
    			high=mid-1;
    		}else if(nums[mid]<k){
    			low=mid+1;
    		}
    	}
    	/* 确定插入位置 */ 
    	if(flag==1){// 如果flag为1则发现序列中有关键字等于k,则使插入位置等于mid
    		pos=mid; 
    	}else{// 如果flag为0则表示序列中没有与关键字k相等的值,则插入位置为low 
    		pos=low;
    	}
    	/* 插入关键字k */
    	for(int i=n-1;i>=pos;i--){
    		nums[i+1]=nums[i];
    	} 
    	nums[pos]=k;
    }

    完整代码如下:

    #include<stdio.h>
    
    /* 打印数组 */ 
    void printArr(int nums[],int n){
    	printf("\n");
    	for(int i=0;i<n;i++){
    		printf("%d\t",nums[i]);
    	}
    	printf("\n");
    }
    
    /* 使用二分查找在顺序表中插入元素k */ 
    void insertK(int nums[],int n,int k){
    	int mid;// 记录中间下标 
    	int low=0,high=n-1;
    	int flag=0;// 标志,用来记录是否有等于k的值 
    	int pos;// 定义的变量,为插入的位置 
    	while(low<=high&&flag==0){// 循环当low>high时跳出循环 
    		mid=(low+high)/2;
    		if(nums[mid]==k){
    			flag=1;// 如果发现有关键字等于k,则将标志flag置为1,退出循环然后插入k 
    		}else if(nums[mid]>k){
    			high=mid-1;
    		}else if(nums[mid]<k){
    			low=mid+1;
    		}
    	}
    	/* 确定插入位置 */ 
    	if(flag==1){// 如果flag为1则发现序列中有关键字等于k,则使插入位置等于mid
    		pos=mid; 
    	}else{// 如果flag为0则表示序列中没有与关键字k相等的值,则插入位置为low 
    		pos=low;
    	}
    	/* 插入关键字k */
    	for(int i=n-1;i>=pos;i--){
    		nums[i+1]=nums[i];
    	} 
    	nums[pos]=k;
    }
    
    int main(){
    	int nums[]={1,2,3,4,5,6,7};
    	int n=7;
    	int k=5;
    	insertK(nums,n,k);// 插入k
    	printArr(nums,n);// 打印数组 
    	
    	return 0;
    }

    运行结果:

    展开全文
  • Python 关键字

    万次阅读 多人点赞 2017-03-30 15:28:47
    关键字是预先保留的标识符,每个关键字都有特殊的含义。编程语言众多,但每种语言都有相应的关键字,Python 也不例外,它自带了一个 keyword 模块,用于检测关键字

    简述

    关键字是预先保留的标识符,每个关键字都有特殊的含义。编程语言众多,但每种语言都有相应的关键字,Python 也不例外,它自带了一个 keyword 模块,用于检测关键字。

    | 版权声明:一去、二三里,未经博主允许不得转载。

    关键字列表

    要获取关键字列表,可以使用内置函数 help()

    >>> help('keywords')
    
    Here is a list of the Python keywords.  Enter any keyword to get more help.
    
    False               class               from                or
    None                continue            global              pass
    True                def                 if                  raise
    and                 del                 import              return
    as                  elif                in                  try
    assert              else                is                  while
    async               except              lambda              with
    await               finally             nonlocal            yield
    break               for                 not
    

    也可以使用 keyword 模块

    >>> import keyword
    >>> keyword.kwlist
    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    

    共 33 个关键字,除 TrueFalseNone 外,其他关键字均为小写形式。

    注意: Python 是一种动态语言,根据时间在不断变化,关键字列表将来有可能会更改。

    关键字判断

    除此之外,keyword 模块还提供了关键字的判断功能:

    >>> keyword.iskeyword('and')
    True
    >>> keyword.iskeyword('has')
    False
    

    如果是关键字,返回 True;否则,返回 False

    关键字含义

    下表列举了所有的 Python 关键字,以及它们的的含义:

    关键字含义
    False布尔类型的值,表示假,与 True 相反
    NoneNone 比较特殊,表示什么也没有,它有自己的数据类型 - NoneType
    True布尔类型的值,表示真,与 False 相反
    and用于表达式运算,逻辑与操作
    as用于类型转换
    assert断言,用于判断变量或者条件表达式的值是否为真
    break中断循环语句的执行
    class用于定义类
    continue跳出本次循环,继续执行下一次循环
    def用于定义函数或方法
    del删除变量或序列的值
    elif条件语句,与 ifelse 结合使用
    else条件语句,与 ifelif 结合使用。也可用于异常和循环语句
    exceptexcept 包含捕获异常后的操作代码块,与 tryfinally 结合使用
    finally用于异常语句,出现异常后,始终要执行 finally 包含的代码块。与 tryexcept 结合使用
    forfor 循环语句
    from用于导入模块,与 import 结合使用
    global定义全局变量
    if条件语句,与 elseelif 结合使用
    import用于导入模块,与 from 结合使用
    in判断变量是否在序列中
    is判断变量是否为某个类的实例
    lambda定义匿名函数
    nonlocal用于标识外部作用域的变量
    not用于表达式运算,逻辑非操作
    or用于表达式运算,逻辑或操作
    pass空的类、方法或函数的占位符
    raise异常抛出操作
    return用于从函数返回计算结果
    trytry 包含可能会出现异常的语句,与 exceptfinally 结合使用
    whilewhile 循环语句
    with简化 Python 的语句
    yield用于从函数依次返回值
    展开全文
  • 中存在至少一个匹配时,INNER JOIN 关键字返回行。 INNER JOIN 关键字语法 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:...

    SQL INNER JOIN 关键字

    在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

    INNER JOIN 关键字语法

    SELECT column_name(s)
    FROM table_name1
    INNER JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    

    注释:INNER JOIN 与 JOIN 是相同的。

    原始的表 (用在例子中的):

    "Persons" 表:

    Id_P LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    "Orders" 表:

    Id_O OrderNo Id_P
    1 77895 3
    2 44678 3
    3 22456 1
    4 24562 1
    5 34764 65

    内连接(INNER JOIN)实例

    现在,我们希望列出所有人的定购。

    您可以使用下面的 SELECT 语句:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    INNER JOIN Orders
    ON Persons.Id_P=Orders.Id_P
    ORDER BY Persons.LastName
    

    结果集:

    LastName FirstName OrderNo
    Adams John 22456
    Adams John 24562
    Carter Thomas 77895
    Carter Thomas 44678

    INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行。

    展开全文
  • 中存在至少一个匹配时,INNER JOIN 关键字返回行。 INNER JOIN 关键字语法 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:...
  • 最近需要筛选Excel的数据 看到网上有大神做出来的Demo 但是在mac上...Sub 如何将一个Excel工作的数据拆分成多个工作() Dim Arr, Rng As Range, Sht As Worksheet, Dic As Object Dim k, t, Str As String, i A
  • Python 为什么没有 void 关键字

    万次阅读 多人点赞 2020-08-21 23:30:21
    ????“Python猫” ,一个值得加星标的公众号void 是编程语言中最常见的关键字之一,从字面上理解,它是“空的、空集、空白”的意思,最常用于表示函数的一种返回值类型。维基百科上...
  • MySQL单关键字模糊查询的实现

    千次阅读 2016-04-24 23:13:24
    MySQL单关键字模糊查询实现方法是很多人都非常想知道的一个问题,那么,究竟采用什么方法,才能实现MySQL单关键字模糊查询呢? 在最近的一个项目需要实现在MySQL单关键字模糊查询,但这数个关键字并不...
  • Java50个关键字总结

    万次阅读 多人点赞 2018-09-15 15:40:44
    abstract修饰类,这类就是抽象类,抽象类中可以有非抽象变量和成员变量,也可以有普通方法、构造方法。但是不能实例化,只能被子类继承。 如果子类不是抽象类,则必须重写父类的抽象方法。 public ...
  • mysql创建使用关键字导致创建失败

    千次阅读 2017-03-27 15:53:04
    在使用mysql创建数据库时,出现以下错误 ...解决方法有两个,一个是改写表名或列名,第二种是把表名和列名用``符号括起来,比如表名就是`user`,``这个符号并不是单引号, 而是键盘上横着的数字键最左边的键。
  • JAVA 关键字 查询

    千次阅读 2013-01-14 15:37:57
    JAVA 关键字 查询 1.abstract - 2 - [ˈæbˌstrækt] adj.抽象的,理论上的;难解的;抽象派的;茫然的  2.boolean - 3 - [ˈbuliən] adj.布尔数学体系的 3.break - 3 - [brek] vt.& vi....
  • 大二上数据库时,老师也没有和我们说不能用啊,所以就用了啊,然后就不好使呀,,但是还是不知道自己用了mysql的关键字呀。所以有些尴尬吧, 所以建议!任何,数据库,属性名呀,都用反引号··引上,这样就不会...
  • Java关键字(简

    2019-04-07 16:28:32
    Java关键字 这些保留字不能用于常量、变量、和任何标识符的名称 类别 关键字 说明 访问控制 private 私有的 – protected 受保护的 – public 公共的 类、方法和变量修饰符 abstract 声明抽象 – ...
  • 、mysql删除数据的关键字 mysql删除数据的关键字有两delete,truncate。 mysql删除数据关键字 二、delete删除数据 delete删除数据可以按照条件删除数据,可以使用limit n关键字可以使用order by xxx关键字...
  •  Merge关键字一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源联接的结果,对目标执行插入、更新或删除操作
  • C语言32个关键字详解

    千次阅读 2020-08-04 22:01:06
    声明一个自动存储的变量 break 跳出当前循环 case 开关语句分支 char 声明字符型变量或函数返回值类型 const 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 continue 结束当前循环,...
  • 各位大神,现在我有一张,存了一些关键字信息,然后有段文字,怎么样能查询到这段文字里有哪些关键字呢。 比如字段里的关键字是:编程;菜鸟;问答。有段话“我的编程技术是菜鸟水平”。 然后查询这段文字里面...
  • C语言关键字解析

    万次阅读 多人点赞 2018-09-09 01:34:52
    在C语言中有32个关键字...编译器创建一个对象,为这个对象分配一块内存空间,并给它取上名字,这个名字就是我们经常所说的变量名或者对象名。 (3)声明和定义的区别: 1)声明可以出现多次,但是定义只能一次。 ...
  • 哈希实现的统计关键字频度

    千次阅读 2011-10-04 21:31:41
    #include #include #include //参数化输入\输出 #include #include //using namespace //名称空间 #define TOTAL 40 //39个关键字 #define
  • 本文咱们就来看一个具体的例子:ABAP 740里的一个关键字REDUCE. 这个关键字的作用和在大规模数据集并行计算领域里广泛使用的"Map-Reduce"编程模型中的Reduce操作类似,可以按照字面意思理解为“归约”。 下图是...
  • C++ virtual关键字

    万次阅读 多人点赞 2017-08-14 19:25:02
    之前始终没有搞清楚C++中 “virtual” 关键字的用法。 静态函数可以声明为虚函数吗 构造函数可以为虚函数吗 析构函数可以为虚函数吗 虚函数可以为私有函数吗 虚函数可以被内联吗 纯虚函数与抽象类
  • 篇:C++11关键字

    千次阅读 2015-04-06 20:15:56
    C++11 关键字共73。 新增关键字: alignas、alignof、char16_t、char32_t、constexpr、decltype、 noexcept、nullptr、static_assert、thread_local。 auto 的意义改变。 register 被视为过时的(可能在未来...
  • super关键字

    2016-11-03 09:41:30
    1. 子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。super.name; super.print(); 2. 创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定...
  • VBA实现多Sheet页匹配关键字并汇总

    千次阅读 2018-06-06 10:36:28
    初次写博客,错误之处请包涵。... 实现思路:打开excel,新建一个新sheet页,运行宏,在用户界面输入需要匹配的关键字,多个关键字按照英文逗号隔开,点击确认,循环sheet页进行匹配,并写入新建...
  • 在mysql的from子句中存在多可以选择添加join关键字用来显式的表明连接类型,如果不使用join关键字则为隐式连接(我的理解就是对表进行笛卡尔积),隐式连接没有表明连接条件,使用where关键字对连接结果进行过滤。...
  • 从百万关键字中提取前K个关键字

    千次阅读 2014-03-22 09:51:38
    使用最小堆找出关键字出现次数最多的前K个关键字。给出使用C++实现的源码。
  • oracle 更新分区表关键字 ORA-14402

    千次阅读 2013-12-27 09:04:31
    不知道大家在更新分区表关键字的时候有没有遇到过ORA-14402,今天我就给大家演示一下。  首先创建分区  create table part_tab_rowid (id int,col2 int,col3 int,contents varchar2(4000))  partition by range...
  • 在使用SQL语句显示结果的时候,往往在屏幕显示的字段名并不具备良好的可读性,此时可以使用 as 给字段起一个别名。 1.使用as给字段起别名 使用as之前: select id, name, gender from students; 使用as之后: ...
  • SQL LEFT JOIN 关键字

    2020-12-16 17:16:23
    LEFT JOIN 关键字从左(table1)返回所有的行,即使右(table2)中没有匹配。如果右没有匹配,则结果为 NULL。 SQL LEFT JOIN 语法 SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 528,557
精华内容 211,422
关键字:

一个表可以没有关键字