普通视图

发现新文章,点击刷新页面。
今天 — 2025年12月14日技术

JavaScript性能与优化:手写实现关键优化技术

作者 1024肥宅
2025年12月14日 16:24
引言 在前端开发中,性能优化不仅仅是使用现成的库和工具,理解其底层原理并能够手写实现是关键。通过手写这些优化技术,我们可以: 更深入地理解性能瓶颈 根据具体场景定制优化方案 避免引入不必要的依赖 提升

暴力分隔计算,python两行,100% | 2147. 分隔长廊的方案数

2023年5月18日 12:26

Problem: 2147. 分隔长廊的方案数

[TOC]

思路

第一步、计数'S'

如果'S'为0或奇数,不符合题意,直接返回0

第二步、按'S'进行分隔

每2个提取出来,去掉首尾2个 → 中间所有'P'的长度 + 1 → 求积 → 取余 → 返回

image.png

Code

python两行,100%:

时间252 ms击败100%;内存18.8 MB击败38.46%

###Python3

class Solution:
    def numberOfWays(self, corridor: str) -> int:
        if (cnt := corridor.count('S')) == 0 or cnt & 1: return 0
        return reduce(lambda x, y : x * y, map(lambda x : len(x) + 1, [""] + corridor.split('S')[2: -2: 2])) % 1000000007

您若还有不同方法,欢迎贴在评论区,一起交流探讨! ^_^

↓ 点个赞,点收藏,再划走,感谢您支持作者! ^_^

深度复盘 III: 核心逻辑篇:构建 WebGL 数字孪生的“业务中枢”与“安全防线”

作者 Addisonx
2025年12月14日 07:40
工业级数字孪生交付的痛点往往不在特效,而在业务闭环。如何防止操作员迷失?如何确保设备控制安全?如何回溯事故现场?本文基于 Z-TWIN 项目实战,复盘了一套包含交互约束体系、工业安全锁与时空回放架构的

每日一题-分隔长廊的方案数🔴

2025年12月14日 00:00

在一个图书馆的长廊里,有一些座位和装饰植物排成一列。给你一个下标从 0 开始,长度为 n 的字符串 corridor ,它包含字母 'S' 和 'P' ,其中每个 'S' 表示一个座位,每个 'P' 表示一株植物。

在下标 0 的左边和下标 n - 1 的右边 已经 分别各放了一个屏风。你还需要额外放置一些屏风。每一个位置 i - 1 和 i 之间(1 <= i <= n - 1),至多能放一个屏风。

请你将走廊用屏风划分为若干段,且每一段内都 恰好有两个座位 ,而每一段内植物的数目没有要求。可能有多种划分方案,如果两个方案中有任何一个屏风的位置不同,那么它们被视为 不同 方案。

请你返回划分走廊的方案数。由于答案可能很大,请你返回它对 109 + 7 取余 的结果。如果没有任何方案,请返回 0 。

 

示例 1:

输入:corridor = "SSPPSPS"
输出:3
解释:总共有 3 种不同分隔走廊的方案。
上图中黑色的竖线表示已经放置好的屏风。
上图每种方案中,每一段都恰好有 两个 座位。

示例 2:

输入:corridor = "PPSPSP"
输出:1
解释:只有 1 种分隔走廊的方案,就是不放置任何屏风。
放置任何的屏风都会导致有一段无法恰好有 2 个座位。

示例 3:

输入:corridor = "S"
输出:0
解释:没有任何方案,因为总是有一段无法恰好有 2 个座位。

 

提示:

  • n == corridor.length
  • 1 <= n <= 105
  • corridor[i] 要么是 'S' ,要么是 'P'
❌
❌