ARTS总结-第3周

Algorithm

Unique Morse Code Words
唯一摩尔斯密码词,给定一组词,判断该组词翻译成摩尔斯密码之后有几个不同的词

International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: “a” maps to “.-”, “b” maps to “-…”, “c” maps to “-.-.”, and so on.
For convenience, the full table for the 26 letters of the English alphabet is given below:
[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…"]
Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, “cab” can be written as “-.-…–…”, (which is the concatenation “-.-.” + “.-” + “-…”). We’ll call such a concatenation, the transformation of a word.
Return the number of different transformations among all words we have.

Example:
Input: words = [“gin”, “zen”, “gig”, “msg”]
Output: 2
Explanation:
The transformation of each word is:
“gin” -> “–…-.”
“zen” -> “–…-.”
“gig” -> “–…--.”
“msg” -> “–…--.”

There are 2 different transformations, “–…-.” and “–…--.”.
Note:

The length of words will be at most 100.
Each words[i] will have length in range [1, 12].
words[i] will only consist of lowercase letters.

思路:定义一个对象,字母为key,对应的摩尔斯代码为value,对于每一个单词,将其翻译成摩尔斯密码,然后对比有几个相同的摩尔斯密码

 /**
 * @param {string[]} words
 * @return {number}
 */
const morseCodeMap = {
    a: ".-",
    b: "-...",
    c: "-.-.",
    d: "-..",
    e: ".",
    f: "..-.",
    g: "--.",
    h: "....",
    i: "..",
    j: ".---",
    k: "-.-",
    l: ".-..",
    m: "--",
    n: "-.",
    o: "---",
    p: ".--.",
    q: "--.-",
    r: ".-.",
    s: "...",
    t: "-",
    u: "..-",
    v: "...-",
    w: ".--",
    x: "-..-",
    y: "-.--",
    z: "--.."
};
var uniqueMorseRepresentations = function (words) {
    let differentMorseCode = words.reduce((pre, next)=>{
        let morseCode = translateWord(next);
        if(!pre.includes(morseCode)) {
            pre.push(morseCode);
        }
        return pre
    },[]);
    return differentMorseCode.length

};
function translateWord(word) {
    let morseCode = '';
    for (let i=0;i<word.length;i++){
        morseCode += morseCodeMap[word[i]]
    }
    return morseCode
}

Review

地址The Internet changes: HTTP/3 will not use TCP anymore

这篇难度还可以,长度也刚刚好,选文章真的要选适合自己的。

因特网的改变:HTTP/3将不再使用TCP协议

IETF透露,超文本传输协议HTTP的第三个正式版本将不再使用TCP协议,取而代之的是,它将运行在2012年由谷歌首次开发的QUIC协议上。

什么是QUIC?

快速UDP网络连接(QUIC),顾名思义,是基于多路UDP连接的传输层协议。事实上,QUIC将UDP上的TCP+TLS+SPDY结合使用,并相对于当前的TCP上的HTTP/2实现了一些增强。

从2016年IETF就一直致力于谷歌QUIC的标准化版本。最近,他们宣布将会在新的HTTP/3的版本中使用它。然而,QUIC的版本已经与原始的QUIC设计有很大不同。

由于TLS1.3的加密技术,QUIC协议旨在保持安全性的同时加速和简化连接。他们开发了一种对于连接建立和数据传输更高效的协议。据谷歌所言,QUIC握手在发送有效负载之前通常需要0往返,而TCP+TLS需要1-3次往返。事实上,第一次连接需要1次往返,之后需要0次往返。

此外,他对于数据包丢失的处理要比当前的TCP协议处理的好。每一个重传的数据包都消耗一个新的序列号,因此消除了歧义,并阻止了由RTO造成的损失。正如IETF的janaiyengar所说,QUIC不仅是对互联网传输层的重新定义,也是对传输权的重新定义。

现在,只有1.2%的顶级网站支持QUIC,但是它们都是高流量站点:几乎每一个谷歌服务都支持它们的QUIC协议。

QUIC是安全的吗?

QUIC的第一次开发包含他自己的加密技术。然而,这只是一种暂时的实现,注定会被由IETF描述的TLS1.3所取代。

事实上,QUIC的连接建立策略是基于加密和传输握手的结合。

QUIC依赖于密码和传输握手的结合最小化连接建立延迟。

使用QUIC,每个东西都会被默认加密,但是,QUIC就像其他任何一种技术一样存在安全风险。

2015年 Robert Lychev and Samuel Jero 的工作报告了协议的几个弱点,QUIC性能可能会因为服务器配置重放共计等攻击而降低。然而,根据他们的安全模型和测试,数据的机密性和真实性似乎得到了适当的保护。

如果你想要了解更多的QUIC以及他是如何集成到下一版本的HTTP中,强烈建议你查阅谷歌官方文档以及IETF发布的草稿。你可以在参考文献里找到他们。

创新是螺旋前进的,就像是个钻头。

Tips

无。

Share

无。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值