news 2026/6/15 11:11:58

树|regex正则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树|regex正则

lc2047

可以三解,复习了:模拟 状态机 正则

正则+istringstream处理

这才是真正的代码😭

正则表达式 (([a-z]+-)?[a-z]+)?[!,.]? 的结构和匹配逻辑是:
- 核心部分 ([a-z]+-)?[a-z]+ :匹配“纯小写字母”(如 abc )或“小写字母+连字符+小写字母”(如 abc-def ,连字符前后至少1个字母);
- 外层 (...)? :让核心部分可选(但结合实际场景,通常是必填,避免空串);
- 末尾 [!,.]? :匹配0或1个句末标点( ! / , / . )。
整体用于匹配合法单词:允许“纯字母”“字母-连字符-字母”,且可带1个句末标点

#include <regex>

class Solution {

public:

int countValidWords(string sentence) {

regex r1("(([a-z]+-)?[a-z]+)?[!,.]?");

//定义匹配pattern

istringstream iss(sentence);

int ans=0;

string word;

while(iss>>word){

if(regex_match(word,r1)){

ans++;

}

}

return ans;

}

};

判断句子中每个单词是否合法(合法是“纯字母”“字母-字母”或这两类加句末标点),统计合法单词数

状态机 优雅的转移设计
-1:错误
0:空格
1:字母
2:字母+链接符
3:字母+链接符+字母
4:结尾

状态注意的梳理 可以画图枚举 画画就出来啦

class Solution {

public:

int countValidWords(string sentence)

{

int state=0,res=0;

sentence+=' ';

for(auto& c:sentence){

if(c==' '){

if(state==1||state==3||state==4)res++;

state=0; //重置

}

else if('a'<=c&&c<='z'){

if(state==0||state==2)state++;

else if(state==1||state==3)continue;

else state=-1;

}

else if(c=='-'){

if(state==1)state=2;

else state=-1;

}

else if(c=='.'||c==','||c=='!'){

if(state==0||state==1||state==3)

state=4;

else state=-1;

}

else state=-1;

}

return res;

}

};

lc1422

注意 覆盖所有分割点

class Solution {

//左0右1

public:

int maxScore(string s)

{

int n=s.size();

vector<int> p(n+1);

for(int i=1;i<=n;i++)

p[i]=p[i-1]+(s[i-1]-'0');

int ret=0;

for(int i=1;i<n;i++)

{

int f=i-p[i];

int b=p[n]-p[i];

ret=max(ret,f+b);

}

return ret;

}

};

lc563

int dfs

class Solution
{
public:
int findTilt(TreeNode* root)
{
int ret=0;
auto dfs=[&](this auto&& dfs,TreeNode* node)->int
{
if(!node) return 0;
int l=dfs(node->left);
int r=dfs(node->right);

ret+=abs(l-r);
return l+r+node->val;
};
dfs(root);
return ret;
}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:20:41

Java毕设项目推荐-基于javaweb的宠物托管系统基于Spring Boot的宠物托管服务系统服务预约、监控宠物状况、与服务提供者沟通【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/15 12:21:07

停止将AI拟人化:这样做的危害性分析

在让AI模型显得越来越令人印象深刻的竞赛中&#xff0c;科技公司采用了戏剧化的语言表达方式。他们不断地像谈论人类一样谈论AI。不仅讨论AI的"思考"或"规划"——这些词语本身就充满争议——现在他们还讨论AI模型的"灵魂"&#xff0c;以及模型如…

作者头像 李华
网站建设 2026/6/15 12:24:18

对称二叉树(tree_c)(信息学奥赛一本通- P1368)

【题目描述】如果二叉树的左右子树的结构是对称的&#xff0c;即两棵子树皆为空&#xff0c;或者皆不空&#xff0c;则称该二叉树是对称的。编程判断给定的二叉树是否对称.例&#xff1a;如下图中的二叉树T1是对称的&#xff0c;T2是不对称的。二叉树用顺序结构给出&#xff0c…

作者头像 李华
网站建设 2026/6/15 0:01:28

特价股票投资中的另类数据应用

特价股票投资中的另类数据应用关键词&#xff1a;特价股票投资、另类数据、数据挖掘、投资策略、金融科技摘要&#xff1a;本文深入探讨了在特价股票投资领域中另类数据的应用。首先介绍了研究的背景、目的、预期读者等信息&#xff0c;详细阐述了另类数据和特价股票投资的核心…

作者头像 李华
网站建设 2026/6/14 19:38:20

程序员收藏!AI大模型赋能制造业:4类核心模型+10+应用案例解析

AI大模型通过直接赋能、场景化定制和任务化定制三种方式推动制造业数字化转型。文章分析了大模型的适用边界和核心能力&#xff0c;介绍语言、专用、多模态和视觉四类模型在工业各环节的应用案例。尽管大模型并非万能&#xff0c;但其与专业知识结合能最大化AI潜力&#xff0c;…

作者头像 李华
网站建设 2026/6/15 12:20:32

别再让 JavaScript 抢 CSS 的活儿了,css原生虚拟化来了

React 虚拟化的过度使用React 开发者似乎把虚拟化库&#xff08;比如 react-window 和 react-virtualized&#xff09;当成了渲染列表的万能药。从逻辑上看&#xff0c;这似乎很合理&#xff1a;用户一次只能看到 10 个项目&#xff0c;为什么要渲染全部 1000 个&#xff1f;虚…

作者头像 李华