Hive2.0常用函数(对编辑器很无语😓)
Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数。
Return Type
|
Name(Signature)
|
Description
|
int
|
ascii(string str)
|
返回str中首个ASCII字符串的整数值
|
string
|
base64(binary bin)
|
将二进制bin转换成64位的字符串
|
string
|
concat(string|binary A,
string|binary B...)
|
对二进制字节码或字符串按次序进行拼接
|
array<struct<string,double>>
|
context_ngrams(array<array<string>>,
array<string>,
int K, int pf)
|
|
string
|
concat_ws(string SEP,
string A,
string B...)
|
与concat()类似,但使用指定的分隔符喜进行分隔
|
string
|
concat_ws(string SEP, array<string>)
|
拼接Array中的元素并用指定分隔符进行分隔
|
string
|
decode(binary bin, string charset)
|
使用指定的字符集charset将二进制值bin解码成字符串,支持的字符集有:'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16',如果任意输入参数为NULL都将返回NULL
|
binary
|
encode(string src, string charset)
|
使用指定的字符集charset将字符串编码成二进制值,支持的字符集有:'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16',如果任一输入参数为NULL都将返回NULL
|
int
|
find_in_set(string str, string strList)
|
返回以逗号分隔的字符串中str出现的位置,如果参数str为逗号或查找失败将返回0,如果任一参数为NULL将返回NULL回
|
string
|
format_number(number x, int d)
|
将数值X转换成"#,###,###.##"格式字符串,并保留d位小数,如果d为0,将进行四舍五入且不保留小数
|
string
|
get_json_object(string json_string,
string path)
|
从指定路径上的JSON字符串抽取出JSON对象,并返回这个对象的JSON格式,如果输入的JSON是非法的将返回NULL,注意此路径上JSON字符串只能由数字 字母 下划线组成且不能有大写字母和特殊字符,且key不能由数字开头,这是由于Hive对列名的限制
|
boolean
|
in_file(string str, string filename)
|
如果文件名为filename的文件中有一行数据与字符串str匹配成功就返回true
|
int
|
instr(string str, string substr)
|
查找字符串str中子字符串substr出现的位置,如果查找失败将返回0,如果任一参数为Null将返回null,注意位置为从1开始的
|
int
|
length(string A)
|
返回字符串的长度
|
int
|
locate(string substr, string str[, int pos])
|
查找字符串str中的pos位置后字符串substr第一次出现的位置
|
string
|
lower(string A) lcase(string A)
|
将字符串A的所有字母转换成小写字母
|
string
|
lpad(string str, int len, string pad)
|
从左边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分
|
string
|
ltrim(string A)
|
去掉字符串A前面的空格
|
array<struct<string,
double>>
|
ngrams(array<array<string>>,
int N,
int K,
int pf)
|
|
string
|
parse_url(string urlString,
string partToExtract [, string keyToExtract])
|
返回从URL中抽取指定部分的内容,参数url是URL字符串,而参数partToExtract是要抽取的部分。这个参数包含(HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO,例如:parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') ='facebook.com',如果参数partToExtract值为QUERY则必须指定第三个参数key 如:parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1') =‘v1’
|
string
|
printf(String format, Obj... args)
|
按照printf风格格式输出字符串
|
string
|
regexp_extract(string subject,
string pattern,
int index)
|
抽取字符串subject中符合正则表达式pattern的第index个部分的子字符串,注意些预定义字符的使用,如第二个参数如果使用'\s'将被匹配到s,'\\s'才是匹配空格
|
string
|
regexp_replace(string INITIAL_STRING,
string PATTERN,
string REPLACEMENT)
|
按照Java正则表达式PATTERN将字符串INTIAL_STRING中符合条件的部分成REPLACEMENT所指定的字符串,如里REPLACEMENT这空的话,抽符合正则的部分将被去掉 如:regexp_replace("foobar", "oo|ar", "") = 'fb.' 注意些预定义字符的使用,如第二个参数如果使用'\s'将被匹配到s,'\\s'才是匹配空格
|
string
|
repeat(string str, int n)
|
重复输出n次字符串str
|
string
|
reverse(string A)
|
反转字符串
|
string
|
rpad(string str, int len, string pad)
|
从右边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分
|
string
|
rtrim(string A)
|
去掉字符串后面出现的空格
|
array<array<string>>
|
sentences(string str, string lang,
string locale)
|
字符串str将被转换成单词数组,如:sentences('Hello there! How are you?') =( ("Hello", "there"), ("How", "are", "you") )
|
string
|
space(int n)
|
返回n个空格
|
array
|
split(string str, string pat)
|
按照正则表达式pat来分割字符串str,并将分割后的数组字符串的形式返回
|
map<string,string>
|
str_to_map(text[, delimiter1,
delimiter2])
|
将字符串str按照指定分隔符转换成Map,第一个参数是需要转换字符串,第二个参数是键值对之间的分隔符,默认为逗号;第三个参数是键值之间的分隔符,默认为"="
|
string
|
substr(string|binary A, int start)
substring(string|binary A, int start)
|
对于字符串A,从start位置开始截取字符串并返回
|
string
|
substr(string|binary A, int start, int len)
substring(string|binary A,
int start,
int len)
|
对于二进制/字符串A,从start位置开始截取长度为length的字符串并返回
|
string
|
substring_index(string A,
string delim,
int count)
|
截取第count分隔符之前的字符串,如count为正则从左边开始截取,如果为负则从右边开始截取
|
string
|
translate(string|char|varchar input,
string|char|varchar from,
string|char|varchar to)
|
将input出现在from中的字符串替换成to中的字符串 如:translate("MOBIN","BIN","M")="MOM"
|
string
|
trim(string A)
|
将字符串A前后出现的空格去掉
|
binary
|
unbase64(string str)
|
将64位的字符串转换二进制值
|
string
|
upper(string A) ucase(string A)
|
将字符串A中的字母转换成大写字母
|
string
|
initcap(string A)
|
将字符串A转换第一个字母大写其余字母的字符串
|
int
|
levenshtein(string A, string B)
|
计算两个字符串之间的差异大小 如:levenshtein('kitten', 'sitting') = 3
|
string
|
soundex(string A)
|
将普通字符串转换成soundex字符串
|
类型转换函数
Return Type
|
Name(Signature)
|
Description
|
binary
|
binary(string|binary)
|
将输入的值转换成二进制
|
Expected "=" to follow "type"
|
cast(expr as <type>)
|
将expr转换成type类型 如:cast("1" as BIGINT) 将字符串1转换成了BIGINT类型,如果转换失败将返回NULL
|
日期函数
Return Type
|
Name(Signature)
|
Description
|
string
|
from_unixtime(bigint unixtime[,
string format])
|
将时间的秒值转换成format格式(format可为“yyyy-MM-dd hh:mm:ss”,“yyyy-MM-dd hh”,“yyyy-MM-dd hh:mm”等等)如from_unixtime(1250111000,"yyyy-MM-dd") 得到2009-03-12
|
bigint
|
unix_timestamp()
|
获取本地时区下的时间戳
|
bigint
|
unix_timestamp(string date)
|
将格式为yyyy-MM-dd HH:mm:ss的时间字符串转换成时间戳 如unix_timestamp('2009-03-20 11:30:01') = 1237573801
|
bigint
|
unix_timestamp(string date,
string pattern)
|
将指定时间字符串格式字符串转换成Unix时间戳,如果格式不对返回0 如:unix_timestamp('2009-03-20', 'yyyy-MM-dd') = 1237532400
|
string
|
to_date(string timestamp)
|
返回时间字符串的日期部分
|
int
|
year(string date)
|
返回时间字符串的年份部分
|
int
|
quarter(date/timestamp/string)
|
返回当前时间属性哪个季度 如quarter('2015-04-08') = 2
|
int
|
month(string date)
|
返回时间字符串的月份部分
|
int
|
day(string date) dayofmonth(date)
|
返回时间字符串的天
|
int
|
hour(string date)
|
返回时间字符串的小时
|
int
|
minute(string date)
|
返回时间字符串的分钟
|
int
|
second(string date)
|
返回时间字符串的秒
|
int
|
weekofyear(string date)
|
返回时间字符串位于一年中的第几个周内 如weekofyear("1970-11-01 00:00:00") = 44, weekofyear("1970-11-01") = 44
|
int
|
datediff(string enddate, string startdate)
|
计算开始时间startdate到结束时间enddate相差的天数
|
string
|
date_add(string startdate, int days)
|
从开始时间startdate加上days
|
string
|
date_sub(string startdate, int days)
|
从开始时间startdate减去days
|
timestamp
|
from_utc_timestamp(timestamp,
string timezone)
|
如果给定的时间戳并非UTC,则将其转化成指定的时区下时间戳
|
timestamp
|
to_utc_timestamp(timestamp,
string timezone)
|
如果给定的时间戳指定的时区下时间戳,则将其转化成UTC下的时间戳
|
date
|
current_date
|
返回当前时间日期
|
timestamp
|
current_timestamp
|
返回当前时间戳
|
string
|
add_months(string start_date,
int num_months)
|
返回当前时间下再增加num_months个月的日期
|
string
|
last_day(string date)
|
返回这个月的最后一天的日期,忽略时分秒部分(HH:mm:ss)
|
string
|
next_day(string start_date,
string day_of_week)
|
返回当前时间的下一个星期X所对应的日期 如:next_day('2015-01-14', 'TU') = 2015-01-20 以2015-01-14为开始时间,其下一个星期二所对应的日期为2015-01-20
|
string
|
trunc(string date, string format)
|
返回时间的最开始年份或月份 如trunc("2016-06-26",“MM”)=2016-06-01 trunc("2016-06-26",“YY”)=2016-01-01 注意所支持的格式为MONTH/MON/MM, YEAR/YYYY/YY
|
double
|
months_between(date1, date2)
|
返回date1与date2之间相差的月份,如date1>date2,则返回正,如果date1<date2,则返回负,否则返回0.0 如:months_between('1997-02-28 10:30:00', '1996-10-30') = 3.94959677 1997-02-28 10:30:00与1996-10-30相差3.94959677个月
|
string
|
date_format(date/timestamp/string ts,
string fmt)
|
按指定格式返回时间date 如:date_format("2016-06-22","MM-dd")=06-22
|
条件函数
Return Type
|
Name(Signature)
|
Description
|
T
|
if(boolean testCondition,
T valueTrue,
T valueFalseOrNull)
|
如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull ,(valueTrue,valueFalseOrNull为泛型)
|
T
|
nvl(T value, T default_value)
|
如果value值为NULL就返回default_value,否则返回value
|
T
|
COALESCE(T v1, T v2, ...)
|
返回第一非null的值,如果全部都为NULL就返回NULL 如:COALESCE (NULL,44,55)=44/strong>
|
T
|
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END
|
如果a=b就返回c,a=d就返回e,否则返回f 如CASE 4 WHEN 5 THEN 5 WHEN 4 THEN 4 ELSE 3 END 将返回4
|
T
|
CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END
|
如果a=ture就返回b,c= ture就返回d,否则返回e 如:CASE WHEN 5>0 THEN 5 WHEN 4>0 THEN 4 ELSE 0 END 将返回5;CASE WHEN 5<0 THEN 5 WHEN 4<0 THEN 4 ELSE 0 END 将返回0
|
boolean
|
isnull( a )
|
如果a为null就返回true,否则返回false
|
boolean
|
isnotnull ( a )
|
如果a为非null就返回true,否则返回false
|
数学函数
Return Type
|
Name (Signature)
|
Description
|
DOUBLE
|
round(DOUBLE a)
|
返回对a四舍五入的BIGINT值
|
DOUBLE
|
round(DOUBLE a, INT d)
|
返回DOUBLE型d的保留n位小数的DOUBLW型的近似值
|
DOUBLE
|
bround(DOUBLE a)
|
银行家舍入法(1~4:舍,6~9:进,5->前位数是偶:舍,5->前位数是奇:进)
|
DOUBLE
|
bround(DOUBLE a, INT d)
|
银行家舍入法,保留d位小数
|
BIGINT
|
floor(DOUBLE a)
|
向下取整,最数轴上最接近要求的值的左边的值 如:6.10->6 -3.4->-4
|
BIGINT
|
ceil(DOUBLE a), ceiling(DOUBLE a)
|
求其不小于小给定实数的最小整数如:ceil(6) = ceil(6.1)= ceil(6.9) = 6
|
DOUBLE
|
rand(), rand(INT seed)
|
每行返回一个DOUBLE型随机数seed是随机因子
|
DOUBLE
|
exp(DOUBLE a), exp(DECIMAL a)
|
返回e的a幂次方, a可为小数
|
DOUBLE
|
ln(DOUBLE a), ln(DECIMAL a)
|
以自然数为底d的对数,a可为小数
|
DOUBLE
|
log10(DOUBLE a), log10(DECIMAL a)
|
以10为底d的对数,a可为小数
|
DOUBLE
|
log2(DOUBLE a), log2(DECIMAL a)
|
以2为底数d的对数,a可为小数
|
DOUBLE
|
log(DOUBLE base, DOUBLE a)
log(DECIMAL base, DECIMAL a)
|
以base为底的对数,base 与 a都是DOUBLE类型
|
DOUBLE
|
pow(DOUBLE a, DOUBLE p),
power(DOUBLE a, DOUBLE p)
|
计算a的p次幂
|
DOUBLE
|
sqrt(DOUBLE a), sqrt(DECIMAL a)
|
计算a的平方根
|
STRING
|
bin(BIGINT a)
|
计算二进制a的STRING类型,a为BIGINT类型
|
STRING
|
hex(BIGINT a)
hex(STRING a)
hex(BINARY a)
|
计算十六进制a的STRING类型,如果a为STRING类型就转换成字符相对应的十六进制
|
BINARY
|
unhex(STRING a)
|
hex的逆方法
|
STRING
|
conv(BIGINT num, INT from_base, INT to_base),
conv(STRING num, INT from_base, INT to_base)
|
将GIGINT/STRING类型的num从from_base进制转换成to_base进制
|
DOUBLE
|
abs(DOUBLE a)
|
计算a的绝对值
|
INT or DOUBLE
|
pmod(INT a, INT b),
|
a对b取模
|
DOUBLE
|
sin(DOUBLE a), sin(DECIMAL a)
|
求a的正弦值
|
DOUBLE
|
asin(DOUBLE a), asin(DECIMAL a)
|
求d的反正弦值
|
DOUBLE
|
cos(DOUBLE a), cos(DECIMAL a)
|
求余弦值
|
DOUBLE
|
acos(DOUBLE a), acos(DECIMAL a)
|
求反余弦值
|
DOUBLE
|
tan(DOUBLE a), tan(DECIMAL a)
|
求正切值
|
DOUBLE
|
atan(DOUBLE a), atan(DECIMAL a)
|
求反正切值
|
DOUBLE
|
degrees(DOUBLE a),
|
奖弧度值转换角度值
|
DOUBLE
|
radians(DOUBLE a), radians(DOUBLE a)
|
将角度值转换成弧度值
|
INT or DOUBLE
|
positive(INT a), positive(DOUBLE a)
|
返回a
|
INT or DOUBLE
|
negative(INT a), negative(DOUBLE a)
|
返回a的相反数
|
DOUBLE or INT
|
sign(DOUBLE a), sign(DECIMAL a)
|
如果a是正数则返回1.0,是负数则返回-1.0,否则返回0.0
|
DOUBLE
|
e()
|
数学常数e
|
DOUBLE
|
pi()
|
数学常数pi
|
BIGINT
|
factorial(INT a)
|
求a的阶乘
|
DOUBLE
|
cbrt(DOUBLE a)
|
求a的立方根
|
INT BIGINT
|
shiftleft(TINYINT|SMALLINT|INT a, INT b)
|
按位左移
|
shiftleft(BIGINT a, INT b)
|
||
INT
|
shiftright(TINYINT|SMALLINT|INT a, INTb)
|
按拉右移
|
BIGINT
|
shiftright(BIGINT a, INT b)
|
|
INT
|
shiftrightunsigned(TINYINT|SMALLINT|INTa,
INT b),
|
无符号按位右移(<<<)
|
BIGINT
|
shiftrightunsigned(BIGINT a, INT b)
|
|
T
|
greatest(T v1, T v2, ...)
|
求最大值
|
T
|
least(T v1, T v2, ...)
|
求最小值
|
集合函数
Return Type
|
Name(Signature)
|
Description
|
int
|
size(Map<K.V>)
|
求map的长度
|
int
|
size(Array<T>)
|
求数组的长度
|
array<K>
|
map_keys(Map<K.V>)
|
返回map中的所有key
|
array<V>
|
map_values(Map<K.V>)
|
返回map中的所有value
|
boolean
|
array_contains(Array<T>, value)
|
如该数组Array<T>包含value返回true。,否则返回false
|
array
|
sort_array(Array<T>)
|
按自然顺序对数组进行排序并返回
|
聚合函数
Return Type
|
Name(Signature)
|
Description
|
BIGINT
|
count(*)
|
统计总行数,包括含有NULL值的行
|
count(expr)
|
统计提供非NULL的expr表达式值的行数
|
|
count(DISTINCT expr[, expr...])
|
统计提供非NULL且去重后的expr表达式值的行数
|
|
DOUBLE
|
sum(col), sum(DISTINCT col)
|
sum(col),表示求指定列的和,sum(DISTINCT col)表示求去重后的列的和
|
DOUBLE
|
avg(col), avg(DISTINCT col)
|
avg(col),表示求指定列的平均值,avg(DISTINCT col)表示求去重后的列的平均值
|
DOUBLE
|
min(col)
|
求指定列的最小值
|
DOUBLE
|
max(col)
|
求指定列的最大值
|
DOUBLE
|
variance(col), var_pop(col)
|
求指定列数值的方差
|
DOUBLE
|
var_samp(col)
|
求指定列数值的样本方差
|
DOUBLE
|
stddev_pop(col)
|
求指定列数值的标准偏差
|
DOUBLE
|
stddev_samp(col)
|
求指定列数值的样本标准偏差
|
DOUBLE
|
covar_pop(col1, col2)
|
求指定列数值的协方差
|
DOUBLE
|
covar_samp(col1, col2)
|
求指定列数值的样本协方差
|
DOUBLE
|
corr(col1, col2)
|
返回两列数值的相关系数
|
DOUBLE
|
percentile(BIGINT col, p)
|
返回col的p%分位数
|
表生成函数
Return Type
|
Name(Signature)
|
Description
|
Array Type
|
explode(array<TYPE> a)
|
对于a中的每个元素,将生成一行且包含该元素
|
N rows
|
explode(ARRAY)
|
每行对应数组中的一个元素
|
N rows
|
explode(MAP)
|
每行对应每个map键-值,其中一个字段是map的键,另一个字段是map的值
|
N rows
|
posexplode(ARRAY)
|
与explode类似,不同的是还返回各元素在数组中的位置
|
N rows
|
stack(INT n, v_1, v_2, ..., v_k)
|
把M列转换成N行,每行有M/N个字段,其中n必须是个常数
|
tuple
|
json_tuple(jsonStr, k1, k2, ...)
|
从一个JSON字符串中获取多个键并作为一个元组返回,与get_json_object不同的是此函数能一次获取多个键值
|
tuple
|
parse_url_tuple(url, p1, p2, ...)
|
返回从URL中抽取指定N部分的内容,参数url是URL字符串,而参数p1,p2,....是要抽取的部分,这个参数包含HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO, QUERY:<KEY>
|
inline(ARRAY<STRUCT[,STRUCT]>)
|
将结构体数组提取出来并插入到表中
|
Hive2.0常用函数(对编辑器很无语😓)的更多相关文章
- Opencv 3.3.0 常用函数
如何调图像的亮度和对比度? //如何增加图片的对比度或亮度? void contrastOrBrightAdjust(InputArray &src,OutputArray &dst, ...
- Delphi7.0常用函数-属性-事件
abort 函数 引起放弃的意外处理 addexitproc 函数 将一过程添加到运行时库的结束过程表中 addr 函数 返回指定对象的地址 adjustlinebreaks 函数 将给定字符串的行分 ...
- Delphi 7.0常用函数速查手册(磁盘文件类)
在Delphi 7.0中,已为我们定义好了非常多的函数,大致分类有6种:数据类型转换函数.字符串.数组操作函数.文件.磁盘操作函数.内存.指针操作函数.数学运算函数.日期函数. 在Delphi中调用函 ...
- selenium2.0 --常用函数2
新建实例driver = webdriver.Chrome() 1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法:loc ...
- 【Linux 应用编程】文件IO操作 - 常用函数
Linux 系统中的各种输入输出,设计为"一切皆文件".各种各样的IO统一用文件形式访问. 文件类型及基本操作 Linux 系统的大部分系统资源都以文件形式提供给用户读写.这些文件 ...
- Python 数据类型,常用函数方法分类
Python基本数据类型:(int) 字符串(str)列表(list)元组(tuple)字典(dict)布尔(bool) python中可以简单使用 类型(数据)创建或转换数据 例: #字符串转数字 ...
- hive2.0函数大全
Hive2.0函数大全(中文版) 摘要 Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数. 目录 数学函数 ...
- Visual Assist X 10.6.1830.0 常用快捷键
Visual Assist X 10.6.1830.0 常用快捷键 1.Alt + G: 在定义与声明之间互跳. 2.Alt + O: 在.h与.cpp之间互跳.(O是字母O,不是数字零) 3.Alt ...
- VC API常用函数简单例子大全(1-89)
第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...
随机推荐
- (转)svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrupted”
今天碰到了个郁闷的问题,svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrup ...
- Bean映射工具之Apache BeanUtils VS Spring BeanUtils
背景 在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进 ...
- 【算法】矩阵填数,深度优先搜索(DFS),Pascal改C语言
面向对象的上机实验 题目 以下列方式向 5*5 矩阵中填入数字.设数字i(1=<i<=25),则数字i+1 的坐标位置应为(E, W).(E, W)可根据下列关系由(x,y)算出: 1)( ...
- windows下exfat无法写入怎么修复?
为了能够实现mac与windows文件共享,把移动硬盘格式化为exfat了,可是在osx中放入文件后,在windows上紧进行读取写入时出现错误,提示使用chkdsk进行修正,下面是修正步骤. 方法/ ...
- U盘自动复制文件
1.建立一个文本文档,WIN+R 里面打NOTEPAD ,或者自己新建一个都一样. 2.把下面的代码复制进去 set fso=createobject("scripting.filesyst ...
- Java总复习内容
StringBuffer定义时需要用正确的方式 例如: StringBuffer xxx = new StringBuffer("雯雯是猪"); 使用StringBuffer的连接 ...
- 【AtCoder】ARC064
ARC064 C - Boxes and Candies 先把每个盒子都消到x 然后从前往后推,要求第二个的上界是x-前一个 因为我们要求靠后的那个尽量小,会对后面的修改影响尽量小 #include ...
- 2019上海网络赛 F. Rhyme scheme 普通dp
Rhyme scheme Problem Describe A rhyme scheme is the pattern of rhymes at the end of each line of a p ...
- LC 394. Decode String
问题描述 Given an encoded string, return its decoded string. The encoding rule is: k[encoded_string], wh ...
- springboot service dockerfile
FROM java:8u111 MAINTAINER ianthony7@163.com # 定义变量 ENV WORK_DIR /opt ENV LOG_DIR /data/logs EXPOSE ...