obsidian社区插件
Obsidian 插件:Code Tab 不止于混合代码块
插件ID:obsidian-code-tab
code-tab
code tab:Obsidian 插件:Code Tab 混合代码块,创造一个类似 leetcode 样式的混合代码块,且不仅限于代码块。
Obsidian 插件:Code Tab 不止于混合代码块
概述
插件名片
效果&特性
为代码块加上标签页,生成 leetcode 样式的混合代码块,且不仅限于代码块,可以自己设计内容比如 tasks,dataview 等。
安装
- 因为该插件还有没上架 Obsidian 社区插件,所以需要手动安装(可参考 Obsidian 社区插件的安装)
- 安装后无需进行其他设置
使用
基本语法
- 用四个 ````来框其整个混合块,别忘了后面跟着的 tab;
- tab 是标签,代表建立一个分支。
- 每一个 tab 下方就是这个分支你想填入的内容。
tab: 标题1
从这里到下一个tab就是内容啦
tab: 标题2
内容二
更多用法展示
1、混合代码块
当每一个内容为代码块时,渲染的效果就是类似 leetcode 的那种混合代码块的效果啦
- 效果展示
这里用 leetcode 第 2730 题做展示
- 源码
````tab
tab:题目
给你一个下标从 0 开始的字符串 s ,这个字符串只包含 0 到 9 的数字字符。
如果一个字符串 t 中至多有一对相邻字符是相等的,那么称这个字符串是半重复的。
请你返回 s 中最长 **半重复** 子字符串的长度。
tab:示例
输入:s = "52233"
输出:4
解释:最长半重复子字符串是 "5223" ,子字符串从 i = 0 开始,在 j = 3 处结束。
输入:s = "5494"
输出:4
解释:s 就是一个半重复字符串,所以答案为 4 。
输入:s = "1111111"
输出:2
解释:最长半重复子字符串是 "11" ,子字符串从 i = 0 开始,在 j = 1 处结束。
tab:java
```java
class Solution {
public int longestSemiRepetitiveSubstring(String s) {
int n = s.length();
if (n <= 2)
return n;
int[] pre = new int[50];
int ans = 0, k = 0; // k记录pre的长度,方便后面遍历得到ans
pre[0] = 1; // 循环从1开始,需要补上第一个1
for (int i = 1; i < n; i++) {
if (s.charAt(i-1) == s.charAt(i))
k++;
pre[k]++;
}
ans = pre[0];
for (int i = 1; i <= k; i++)
ans = Math.max(ans, pre[i-1] + pre[i]);
return ans;
}
}
```
tab:python
```python
class Solution:
def longestSemiRepetitiveSubstring(self, s: str) -> int:
if len(s) <= 2:
return len(s)
pre = [1] # 循环从1开始,需要补上第一个1
for i in range(1, len(s)):
pre[len(pre)-1] += 1
if s[i-1] == s[i]:
pre.append(0)
ans = pre[0]
for i in range(1, len(pre)):
ans = max(ans, pre[i-1] + pre[i])
return ans
```
tab:c
```c
int longestSemiRepetitiveSubstring(char * s){
int pre[50] = {1};
int ans = 0, k = 0;
for (int i = 1; i < 50; i++) {
// 不能用sizeof(s)来得到s的长度,因此要加上这个判断
if (s[i] == NULL)
break;
if (s[i-1] == s[i])
k++;
pre[k]++;
}
ans = pre[0];
for (int i = 1; i <= k; i++)
ans = fmax(ans, pre[i-1] + pre[i]);
return ans;
}
```
2、分块任务清单
- 效果展示
- 源码
````tab
tab: 每日任务
- [ ] 建设PKMER
- [ ] 建设PKMER
tab: 短期任务
- [ ] 建设PKMER
- [ ] 建设PKMER
tab: 长期任务
- [ ] 建设PKMER
- [ ] 建设PKMER
````
3、分区整理
- 效果展示
- 源码
````tab
tab: 分治法
##### Easy
- 108.将有序数组转换为二叉搜索树
##### Medium
- 53.最大子数组和
- 105.从前序与中序遍历序列构造二叉树
- 106.从中序与后序遍历序列构造二叉树
- 148.排序链表
##### Hard
- 4.寻找两个正序数组的中位数
- 23.合并K个升序列表
tab: 动态规划
##### Easy
- 70.爬楼梯
##### Medium
- 5.最长回文子串
- 22.括号生成
- 45.跳跃游戏Ⅱ
##### Hard
- 10.正则表达式匹配
- 32.最长有效括号
- 42.接雨水
- 44.通配符匹配
````
4、配合 dataview 进行查询
- 效果展示
- 源码
````tab
tab:难度为Easy
```dataview
table WITHOUT ID
id AS "题号", name AS "题目", degree AS "难度"
FROM "Code/LeetCode"
WHERE degree = "Easy"
SORT id
```
tab:难度为Medium
```dataview
TABLE WITHOUT ID
id AS "题号", name AS "题目", degree AS "难度"
FROM "Code/LeetCode"
WHERE degree = "Medium"
SORT id
```
tab:难度为Hard
```dataview
TABLE WITHOUT ID
id AS "题号", name AS "题目", degree AS "难度"
FROM "Code/LeetCode"
WHERE degree = "Hard"
SORT id
```
````
相关文章
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。