当前位置: 首页 > news >正文

9.27 枚举|前缀和dp|正则shell

 

lc193 电话号码

shell正则

awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-([0-9]{4})$/' file.txt

 4. grep与awk

- grep 命令: grep -P '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txt 

- awk/gawk 命令: awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt  或者  gawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt 

 

5. 附加快速查看表

为了方便查看,列出对应的特殊字符表以及表达方式

特殊字符、转义及特殊含义

 

特殊字符 转义表达 特殊含义 

 ()   \(\)  标记一个子表达式的开始和结束位置,子表达式可后续使用 

 $   \$  匹配输入字符串的结尾位置 

 *   \*  匹配前面的子表达式零次或多次 

 +   \+  匹配前面的子表达式一次或多次 

 .   \.  匹配除换行符  \n  之外的任何单字符 

 []   \[ \]  标记一个中括号表达式的开始,要匹配  [  请使用  \[  

 ?   \?  匹配前面的子表达式零次或一次,或指明一个非贪婪限定符 

` `  |  

 ^   \^  匹配输入字符串的开始位置;在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合 

 {}   \{\}  标记限定符表达式的开始 

` `  |  

 

限定符表达及出现次数

 

限定符 表达 出现次数 

 *  出现次数 >= 0 

 +  出现次数 >= 1 

 ?  出现次数 0 or 1,等价  {0,1}  

 {n}  出现次数 = n 

 {n,}  出现次数 >= n 

 {n, m}  n <= 出现次数 <= m 

 

定位符表达及含义

 

定位符 表达 含义 

 ^  字符串开始的位置 

 $  字符串结束的位置 

 \b  限定单词(字)的字符,常用来确定一个单词,可结合两个  \b  使用 

 \B  限定非单词(字)边界的字符,用的很少

 

 

lc195 shell查找第十行

awk

sed

tail

 sed -n 10p file.txt
# sed “是流编辑器,逐行处理文件”
# -n “禁用默认输出功能。默认情况下,sed 会处理每一行并输出结果,加上 -n 后,只有显式指定的内容才会输出”
# 10p “10 指匹配文件的第 10 行。 p 是打印匹配的行内容”
# file.txt “输入文件”

 

lc812

 class Solution {

public:

    double largestTriangleArea(vector<vector<int>>& points) {

        const int N = points.size();

        double res = 0;

        for (int i = 0; i < N - 2; i ++) {

            for (int j = i + 1; j < N - 1; j ++) {

                for (int k = j + 1; k < N; k ++) {

                    auto& point1 = points[i];

                    auto& point2 = points[j];

                    auto& point3 = points[k];

                    int x1 = point1[0], y1 = point1[1];

                    int x2 = point2[0], y2 = point2[1];

                    int x3 = point3[0], y3 = point3[1];

                    res = max(res, 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)));

                }

            }

        }

        return res;

    }

};

 

 

lc689

前缀和dp+枚举中间

 

再分别找出每个位置左边、右边最大的k长度子数组和及起始位置

最后遍历 枚举中间子数组位置,找三个不重叠k长子数组和最大的起始位置组合并返回

 class Solution {
public:
vector<int> maxSumOfThreeSubarrays(vector<int>& nums, int k) {
int n = nums.size();
vector<int> s(n + 1, 0);
for (int i = 0; i < n; ++i) {
s[i + 1] = s[i] + nums[i];
}

 

        vector<vector<int>> pre(n, vector<int>(2, 0));
vector<vector<int>> suf(n, vector<int>(2, 0));

        for (int i = 0, t = 0, idx = 0; i < n - k + 1; ++i) {
int cur = s[i + k] - s[i];
if (cur > t) {
pre[i + k - 1] = {cur, i};
t = cur;
idx = i;
} else 
pre[i + k - 1] = {t, idx};
}

        for (int i = n - k, t = 0, idx = 0; i >= 0; --i) {
int cur = s[i + k] - s[i];
if (cur >= t) {
suf[i] = {cur, i};
t = cur;
idx = i;
} else {
suf[i] = {t, idx};
}
}

 

        vector<int> ans;
for (int i = k, t = 0; i < n - 2 * k + 1; ++i)

     {
int cur = s[i + k] - s[i] + pre[i - 1][0] + suf[i + k][0];
if (cur > t) {
ans = {pre[i - 1][1], i, suf[i + k][1]};
t = cur;
}
}

        return ans;
}
};

 

http://www.dtcms.com/a/412279.html

相关文章:

  • 卫朋:IPD流程落地-技术管理实战
  • 兽装定制网站wordpress站点登陆
  • 网站建设学习哪家专业中龙建电力建设股份有限公司网站
  • 百度获取入口哈尔滨网站优化流程
  • 装修公司免费网站模版防城港北京网站建设
  • 实现私有 yum 仓库搭建
  • 用于批量上传本地 Git 仓库到 Gitcode 的组织仓库
  • HCIP-IoT 真题详解(章节D),嵌入式基础与南向开发 /Part3
  • 新媒体公司网站怎么做海淘返利网站怎么做
  • 软件源码购买一般在哪个网站2019还有人做网站淘宝客吗
  • 网站排名如何做广州网站设计工作室
  • JavaScript学习笔记(十三):JS解构技巧详解
  • 自己做服务器和网站网络应用程序方案设计
  • 百度Feed实时数仓架构升级
  • 韩都衣舍网站建设方案重庆模板网站哪个好
  • 公司网页网站建设 ppt网站建设费科目
  • 做网站主要学什么软件网站域名绑定破解
  • 苹果群控系统如何同时操作多个游戏账号?
  • webpack 中的tapable用法
  • 网站技术解决方案是什么有哪些建设工程类网站
  • 自适应平台(Adaptive Platform)——Specification of State Management
  • 微信 网站设计模板免费申请空间网站
  • Radan钣金CAM解决方案——小型智能工厂应用案例
  • 做网站的目的和意义长沙网站设计工作室
  • 力扣HOT100-跳跃游戏II
  • 秦皇岛网站排名公司网站被iframe
  • php网站登录系统怎么做网页美工设计主要从哪些方面设计
  • 网站开发问卷调查题最新的新闻内容
  • 无人机航电系统散热技术要点
  • 网站中的链接是一个一个html做的美工做图哪个网站好