mirror of
https://github.moeyy.xyz/https://github.com/trekhleb/javascript-algorithms.git
synced 2024-11-10 11:09:43 +08:00
Compare commits
4 Commits
136ccd7ece
...
2dcfc652c7
Author | SHA1 | Date | |
---|---|---|---|
|
2dcfc652c7 | ||
|
ca3d16dcce | ||
|
e7f30a7bf7 | ||
|
1c9061c03a |
@ -1,5 +1,8 @@
|
||||
# Palindrome Check
|
||||
|
||||
_Read this in other languages:_
|
||||
[中文](README.zh-CN.md)
|
||||
|
||||
A [Palindrome](https://en.wikipedia.org/wiki/Palindrome) is a string that reads the same forwards and backwards.
|
||||
This means that the second half of the string is the reverse of the
|
||||
first half.
|
||||
|
28
src/algorithms/string/palindrome/README.zh-CN.md
Normal file
28
src/algorithms/string/palindrome/README.zh-CN.md
Normal file
@ -0,0 +1,28 @@
|
||||
# 回文检查
|
||||
|
||||
一个[回文串](https://en.wikipedia.org/wiki/Palindrome)是一个从前访问和从后访问相同的字符串。
|
||||
这意味着字符串的后半部分与前半部分的翻转相同
|
||||
|
||||
## 例子
|
||||
|
||||
下面的是回文串 (所以将返回 `TRUE`):
|
||||
|
||||
```
|
||||
- "a"
|
||||
- "pop" -> p + o + p
|
||||
- "deed" -> de + ed
|
||||
- "kayak" -> ka + y + ak
|
||||
- "racecar" -> rac + e + car
|
||||
```
|
||||
|
||||
下面的不是回文串 (所以将返回 `FALSE`):
|
||||
|
||||
```
|
||||
- "rad"
|
||||
- "dodo"
|
||||
- "polo"
|
||||
```
|
||||
|
||||
## 参考
|
||||
|
||||
- [GeeksForGeeks - 检查一个数字是否回文](https://www.geeksforgeeks.org/check-if-a-number-is-palindrome/)
|
@ -1,5 +1,8 @@
|
||||
# Regular Expression Matching
|
||||
|
||||
_Read this in other languages:_
|
||||
[中文](README.zh-CN.md)
|
||||
|
||||
Given an input string `s` and a pattern `p`, implement regular
|
||||
expression matching with support for `.` and `*`.
|
||||
|
||||
|
@ -0,0 +1,70 @@
|
||||
# 正则表达式匹配
|
||||
|
||||
给定一个输入字符串 `s`,和一个模式 `p`,实现一个支持 `。` 和 `*` 的正则表达式匹配
|
||||
|
||||
- `。` 匹配任何单个字符。
|
||||
- `*` 匹配零个或多个前面的那一个元素。
|
||||
|
||||
匹配应该覆盖**整个**输入字符串(不是一部分)
|
||||
|
||||
**注意**
|
||||
|
||||
- `s` 可以为空或者只包含小写 `a-z`。
|
||||
- `p` 可以为空或者只包含小写 `a-z`, 以及字符`。` or `*`。
|
||||
|
||||
## 例子
|
||||
|
||||
**示例一**
|
||||
|
||||
输入:
|
||||
```
|
||||
s = 'aa'
|
||||
p = 'a'
|
||||
```
|
||||
|
||||
输出: `false`
|
||||
|
||||
解释:`a` 无法匹配 `aa` 整个字符串。
|
||||
|
||||
**示例二**
|
||||
|
||||
输入:
|
||||
```
|
||||
s = 'aa'
|
||||
p = 'a*'
|
||||
```
|
||||
|
||||
输出: `true`
|
||||
|
||||
解释:因为 `*` 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 `a`。因此,字符串 `aa` 可被视为 `a` 重复了一次。
|
||||
|
||||
**示例三**
|
||||
|
||||
输入:
|
||||
|
||||
```
|
||||
s = 'ab'
|
||||
p = '。*'
|
||||
```
|
||||
|
||||
输出: `true`
|
||||
|
||||
解释:`。*` 表示可匹配零个或多个(`*`)任意字符(`。`)。
|
||||
|
||||
**示例四**
|
||||
|
||||
输入:
|
||||
|
||||
```
|
||||
s = 'aab'
|
||||
p = 'c*a*b'
|
||||
```
|
||||
|
||||
输出: `true`
|
||||
|
||||
解释: `c` 可以重复零次, `a` 可以重复一次。 因此可以匹配 `aab`。
|
||||
|
||||
## 参考
|
||||
|
||||
- [油管](https://www。youtube。com/watch?v=l3hda49XcDE&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8&index=71&t=0s)
|
||||
- [力扣](https://leetcode-cn。com/problems/regular-expression-matching/)
|
@ -7,9 +7,9 @@ _Lee este artículo en otros idiomas:_
|
||||
[_Português_](README.pt-BR.md)
|
||||
[_English_](README.md)
|
||||
|
||||
En ciencias de la computaciòn una **lista enlazada** es una coleccion linear
|
||||
de elementos de datos, en los cuales el orden linear no es dado por
|
||||
su posciòn fisica en memoria. En cambio, cada
|
||||
En ciencias de la computación una **lista enlazada** es una colección lineal
|
||||
de elementos, en los cuales el orden lineal no es dado por
|
||||
su posición física en memoria. En cambio, cada
|
||||
elemento señala al siguiente. Es una estructura de datos
|
||||
que consiste en un grupo de nodos los cuales juntos representan
|
||||
una secuencia. En su forma más sencilla, cada nodo está
|
||||
@ -19,10 +19,10 @@ permite la inserción o eliminación de elementos
|
||||
desde cualquier posición en la secuencia durante la iteración.
|
||||
Las variantes más complejas agregan enlaces adicionales, permitiendo
|
||||
una eficiente inserción o eliminación desde referencias arbitrarias
|
||||
del elemento. Una desventaja de las listas lazadas es que el tiempo de
|
||||
del elemento. Una desventaja de las listas enlazadas es que el tiempo de
|
||||
acceso es lineal (y difícil de canalizar). Un acceso
|
||||
más rápido, como un acceso aleatorio, no es factible. Los arreglos
|
||||
tienen una mejor locazion en caché comparados con las listas lazadas.
|
||||
tienen una mejor localización en caché comparados con las listas enlazadas.
|
||||
|
||||
![Linked List](./images/linked-list.jpeg)
|
||||
|
||||
@ -112,7 +112,7 @@ Remove(head, value)
|
||||
end Remove
|
||||
```
|
||||
|
||||
### Atrevesar
|
||||
### Atravesar
|
||||
|
||||
```text
|
||||
Traverse(head)
|
||||
|
@ -10,8 +10,8 @@
|
||||
Додаткова операція для читання головного елемента (peek) дає доступ
|
||||
до останнього елементу стека без зміни самого стека.
|
||||
|
||||
Найчастіше принцип роботи стека порівнюють зі чаркою тарілок: щоб узяти другу
|
||||
зверху потрібно зняти верхню.
|
||||
Найчастіше принцип роботи стека порівнюють із стопкою тарілок: щоб узяти другу
|
||||
зверху потрібно спочатку зняти верхню.
|
||||
|
||||
Ілюстрація роботи зі стеком.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user