mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Merge branch 'youngyangyang04:master' into master
This commit is contained in:
@ -81,7 +81,7 @@ public:
|
|||||||
for (int j = nums.size() - 1; j > i; j--) {
|
for (int j = nums.size() - 1; j > i; j--) {
|
||||||
if (nums[j] > nums[i]) {
|
if (nums[j] > nums[i]) {
|
||||||
swap(nums[j], nums[i]);
|
swap(nums[j], nums[i]);
|
||||||
sort(nums.begin() + i + 1, nums.end());
|
reverse(nums.begin() + i + 1, nums.end());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,6 +210,71 @@ var evalRPN = function(tokens) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
普通版:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function evalRPN(tokens: string[]): number {
|
||||||
|
let helperStack: number[] = [];
|
||||||
|
let temp: number;
|
||||||
|
let i: number = 0;
|
||||||
|
while (i < tokens.length) {
|
||||||
|
let t: string = tokens[i];
|
||||||
|
switch (t) {
|
||||||
|
case '+':
|
||||||
|
temp = helperStack.pop()! + helperStack.pop()!;
|
||||||
|
helperStack.push(temp);
|
||||||
|
break;
|
||||||
|
case '-':
|
||||||
|
temp = helperStack.pop()!;
|
||||||
|
temp = helperStack.pop()! - temp;
|
||||||
|
helperStack.push(temp);
|
||||||
|
break;
|
||||||
|
case '*':
|
||||||
|
temp = helperStack.pop()! * helperStack.pop()!;
|
||||||
|
helperStack.push(temp);
|
||||||
|
break;
|
||||||
|
case '/':
|
||||||
|
temp = helperStack.pop()!;
|
||||||
|
temp = Math.trunc(helperStack.pop()! / temp);
|
||||||
|
helperStack.push(temp);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
helperStack.push(Number(t));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return helperStack.pop()!;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
优化版:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function evalRPN(tokens: string[]): number {
|
||||||
|
const helperStack: number[] = [];
|
||||||
|
const operatorMap: Map<string, (a: number, b: number) => number> = new Map([
|
||||||
|
['+', (a, b) => a + b],
|
||||||
|
['-', (a, b) => a - b],
|
||||||
|
['/', (a, b) => Math.trunc(a / b)],
|
||||||
|
['*', (a, b) => a * b],
|
||||||
|
]);
|
||||||
|
let a: number, b: number;
|
||||||
|
for (let t of tokens) {
|
||||||
|
if (operatorMap.has(t)) {
|
||||||
|
b = helperStack.pop()!;
|
||||||
|
a = helperStack.pop()!;
|
||||||
|
helperStack.push(operatorMap.get(t)!(a, b));
|
||||||
|
} else {
|
||||||
|
helperStack.push(Number(t));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return helperStack.pop()!;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
python3
|
python3
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
@ -348,7 +348,44 @@ MyQueue.prototype.empty = function() {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
class MyQueue {
|
||||||
|
private stackIn: number[]
|
||||||
|
private stackOut: number[]
|
||||||
|
constructor() {
|
||||||
|
this.stackIn = [];
|
||||||
|
this.stackOut = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
push(x: number): void {
|
||||||
|
this.stackIn.push(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
pop(): number {
|
||||||
|
if (this.stackOut.length === 0) {
|
||||||
|
while (this.stackIn.length > 0) {
|
||||||
|
this.stackOut.push(this.stackIn.pop()!);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this.stackOut.pop()!;
|
||||||
|
}
|
||||||
|
|
||||||
|
peek(): number {
|
||||||
|
let temp: number = this.pop();
|
||||||
|
this.stackOut.push(temp);
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
empty(): boolean {
|
||||||
|
return this.stackIn.length === 0 && this.stackOut.length === 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
class MyQueue {
|
class MyQueue {
|
||||||
|
|
||||||
|
@ -267,8 +267,32 @@ var removeDuplicates = function(s) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function removeDuplicates(s: string): string {
|
||||||
|
const helperStack: string[] = [];
|
||||||
|
let i: number = 0;
|
||||||
|
while (i < s.length) {
|
||||||
|
let top: string = helperStack[helperStack.length - 1];
|
||||||
|
if (top === s[i]) {
|
||||||
|
helperStack.pop();
|
||||||
|
} else {
|
||||||
|
helperStack.push(s[i]);
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
let res: string = '';
|
||||||
|
while (helperStack.length > 0) {
|
||||||
|
res = helperStack.pop() + res;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
C:
|
C:
|
||||||
方法一:使用栈
|
方法一:使用栈
|
||||||
|
|
||||||
```c
|
```c
|
||||||
char * removeDuplicates(char * s){
|
char * removeDuplicates(char * s){
|
||||||
//求出字符串长度
|
//求出字符串长度
|
||||||
|
Reference in New Issue
Block a user