Merge branch 'master' of github.com:youngyangyang04/leetcode-master
This commit is contained in:
@@ -362,10 +362,43 @@ main();
|
||||
|
||||
### Scala:
|
||||
|
||||
|
||||
### PHP:
|
||||
|
||||
```php
|
||||
<?php
|
||||
// 标准输入
|
||||
$s = trim(fgets(STDIN));
|
||||
$oldLen = strlen($s);
|
||||
$count = 0;
|
||||
for ($i = 0; $i < $oldLen; $i++) {
|
||||
if (is_numeric($s[$i])) {
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
|
||||
// 扩充字符串
|
||||
$s = str_pad($s, $oldLen + $count * 5);
|
||||
$newLen = strlen($s);
|
||||
while($oldLen >= 0) {
|
||||
if (is_numeric($s[$oldLen])) {
|
||||
$s[$newLen--] = 'r';
|
||||
$s[$newLen--] = 'e';
|
||||
$s[$newLen--] = 'b';
|
||||
$s[$newLen--] = 'm';
|
||||
$s[$newLen--] = 'u';
|
||||
$s[$newLen--] = 'n';
|
||||
} else {
|
||||
$s[$newLen--] = $s[$oldLen];
|
||||
}
|
||||
$oldLen--;
|
||||
}
|
||||
|
||||
echo $s;
|
||||
?>
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
### Rust:
|
||||
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
```
|
||||
2
|
||||
abcdefg
|
||||
```
|
||||
```
|
||||
|
||||
样例输出:
|
||||
|
||||
@@ -300,33 +300,50 @@ int main()
|
||||
```javascript
|
||||
// JS中字符串内不可单独修改
|
||||
|
||||
// 右旋转
|
||||
function reverseLeftWords(s, k) {
|
||||
const reverse = (sList, start, end) => {
|
||||
for (let i = start, j = end; i < j; i++, j--) {
|
||||
[sList[i], sList[j]] = [sList[j], sList[i]];
|
||||
}
|
||||
}
|
||||
const sList = Array.from(s);
|
||||
reverse(sList, 0, sList.length - k - 1);
|
||||
reverse(sList, sList.length - k, sList.length - 1);
|
||||
reverse(sList, 0, sList.length - 1);
|
||||
return sList.join('');
|
||||
const readline = require('readline')
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
})
|
||||
|
||||
const inputs = []; // 存储输入
|
||||
|
||||
rl.on('line', function(data) {
|
||||
inputs.push(data);
|
||||
|
||||
}).on('close', function() {
|
||||
const res = deal(inputs);
|
||||
// 打印结果
|
||||
console.log(res);
|
||||
})
|
||||
|
||||
// 对传入的数据进行处理
|
||||
function deal(inputs) {
|
||||
let [k, s] = inputs;
|
||||
const len = s.length - 1;
|
||||
k = parseInt(k);
|
||||
str = s.split('');
|
||||
|
||||
str = reverseStr(str, 0, len - k)
|
||||
str = reverseStr(str, len - k + 1, len)
|
||||
str = reverseStr(str, 0, len)
|
||||
|
||||
return str.join('');
|
||||
}
|
||||
|
||||
// 左旋转
|
||||
var reverseLeftWords = function(s, n) {
|
||||
const reverse = (sList, start, end) => {
|
||||
for (let i = start, j = end; i < j; i++, j--) {
|
||||
[sList[i], sList[j]] = [sList[j], sList[i]];
|
||||
// 根据提供的范围进行翻转
|
||||
function reverseStr(s, start, end) {
|
||||
|
||||
while (start < end) {
|
||||
[s[start], s[end]] = [s[end], s[start]]
|
||||
|
||||
start++;
|
||||
end--;
|
||||
}
|
||||
}
|
||||
const sList = s.split('');
|
||||
reverse(sList, 0, n - 1);
|
||||
reverse(sList, n, sList.length - 1);
|
||||
reverse(sList, 0, sList.length - 1);
|
||||
return sList.join('');
|
||||
};
|
||||
|
||||
return s;
|
||||
}
|
||||
```
|
||||
|
||||
### TypeScript:
|
||||
@@ -338,10 +355,35 @@ var reverseLeftWords = function(s, n) {
|
||||
|
||||
### PHP:
|
||||
|
||||
```php
|
||||
<?php
|
||||
// 反转函数
|
||||
function reverse(&$s, $start, $end) {
|
||||
for ($i = $start, $j = $end; $i < $j; $i++, $j--) {
|
||||
$tmp = $s[$i];
|
||||
$s[$i] = $s[$j];
|
||||
$s[$j] = $tmp;
|
||||
}
|
||||
}
|
||||
|
||||
// 标准输入:读取右旋转位数和字符串
|
||||
$n = trim(fgets(STDIN));
|
||||
$s = trim(fgets(STDIN));
|
||||
// 字符串长度
|
||||
$len = strlen($s);
|
||||
// 先部分反转
|
||||
reverse($s, $len - $n, $len - 1);
|
||||
reverse($s, 0, $len - $n - 1);
|
||||
// 再整体反转
|
||||
reverse($s, 0, $len - 1);
|
||||
|
||||
echo $s;
|
||||
?>
|
||||
```
|
||||
|
||||
|
||||
### Scala:
|
||||
|
||||
|
||||
### Rust:
|
||||
|
||||
|
||||
|
||||
@@ -186,7 +186,56 @@ int main() {
|
||||
### Java
|
||||
|
||||
### Python
|
||||
```python
|
||||
from collections import deque
|
||||
|
||||
# 处理输入
|
||||
n, m = list(map(int, input().strip().split()))
|
||||
g = []
|
||||
for _ in range(n):
|
||||
row = list(map(int, input().strip().split()))
|
||||
g.append(row)
|
||||
|
||||
# 定义四个方向、孤岛面积(遍历完边缘后会被重置)
|
||||
directions = [[0,1], [1,0], [-1,0], [0,-1]]
|
||||
count = 0
|
||||
|
||||
# 广搜
|
||||
def bfs(r, c):
|
||||
global count
|
||||
q = deque()
|
||||
q.append((r, c))
|
||||
g[r][c] = 0
|
||||
count += 1
|
||||
|
||||
while q:
|
||||
r, c = q.popleft()
|
||||
for di in directions:
|
||||
next_r = r + di[0]
|
||||
next_c = c + di[1]
|
||||
if next_c < 0 or next_c >= m or next_r < 0 or next_r >= n:
|
||||
continue
|
||||
if g[next_r][next_c] == 1:
|
||||
q.append((next_r, next_c))
|
||||
g[next_r][next_c] = 0
|
||||
count += 1
|
||||
|
||||
|
||||
for i in range(n):
|
||||
if g[i][0] == 1: bfs(i, 0)
|
||||
if g[i][m-1] == 1: bfs(i, m-1)
|
||||
|
||||
for i in range(m):
|
||||
if g[0][i] == 1: bfs(0, i)
|
||||
if g[n-1][i] == 1: bfs(n-1, i)
|
||||
|
||||
count = 0
|
||||
for i in range(n):
|
||||
for j in range(m):
|
||||
if g[i][j] == 1: bfs(i, j)
|
||||
|
||||
print(count)
|
||||
```
|
||||
### Go
|
||||
|
||||
### Rust
|
||||
|
||||
Reference in New Issue
Block a user