news 2026/6/10 18:24:45

树|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/10 13:38:17

塑造2026年的八大智能手机趋势

智能手机在2026年表面上可能看起来很熟悉&#xff0c;但内部技术正在发生决定性的飞跃。AI原生处理器、新连接层和先进显示系统正在将日常设备转变为具有企业级功能的强大个人平台。这些趋势对企业和消费者同样重要&#xff0c;因为人们携带的手机塑造了他们访问数据、协作、管…

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

Godot资源逆向实战:3步轻松提取游戏资源包

还在为无法获取Godot游戏中的精美素材而烦恼吗&#xff1f;想快速掌握pck文件解析的核心技巧吗&#xff1f;本文将带你从零开始&#xff0c;通过实战案例轻松掌握Godot资源提取的完整流程。无论你是游戏开发者想要复用资源&#xff0c;还是游戏研究者需要分析内容&#xff0c;这…

作者头像 李华
网站建设 2026/6/9 21:17:35

全面封禁 Cursor!又一家大厂出手了

大家好&#xff0c;我是程序员鱼皮。 最近&#xff0c;有网友爆料称&#xff1a;快手的研发线发布通知&#xff0c;收紧了对第三方编程软件的使用权限。 不少同学发现&#xff0c;只要在自己办公电脑上点开 Cursor&#xff0c;就直接闪退&#xff0c;压根儿用不了。 我都能想…

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

在现有App里嵌入一个AI协作者

过去一年&#xff0c;如果你关注前端或移动开发领域&#xff0c;大概率听过一个新词&#xff1a;“生成式 UI”&#xff08;Generative UI&#xff09;。它不再只是实验室里的概念&#xff0c;而是正被集成进真实产品中——用户说一句话&#xff0c;系统不仅能理解意图&#xf…

作者头像 李华
网站建设 2026/6/10 16:10:50

入职宇树Web前端开发,30K双休有点爽

投稿&#xff1a; 第一轮技术面&#xff08;JavaScript 核心 浏览器原理 前端框架底层&#xff09; 本环节重点考察 JavaScript 语言特性、浏览器渲染机制、框架原理等深度知识&#xff0c;是社招筛选的核心门槛1.JavaScript 闭包的形成原理、应用场景与内存泄漏防范 2. Ev…

作者头像 李华