Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1de4f3a

Browse files
✨ rank teams by votes
1 parent 6d858fc commit 1de4f3a

File tree

3 files changed

+37
-17
lines changed

3 files changed

+37
-17
lines changed

‎CATEGORY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
* 排序
3131

32+
- KMP
3233
- 递归
3334

3435
- 广度优先搜索

‎src/1366-rank-teams-by-votes/index.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* @param {string[]} votes
3+
* @return {string}
4+
*/
5+
var rankTeams = function (votes) {
6+
// 添加权重,计算每个队员的权重分,然后进行排序即可。
7+
8+
let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
9+
let rank = new Array(26).fill(0);
10+
let len = votes[0].length; // 对len个队员来进行排名
11+
for (let i = 0; i < len; i++) {
12+
for (let j = 0; j < votes.length; j++) {
13+
// 第j个人投票给 队员votes[j][i] 名次为i 转化为权重分,累加起来
14+
rank[chars.indexOf(votes[j][i])] += Math.pow(26, len - 1 - i);
15+
}
16+
}
17+
18+
let res = [];
19+
for (let i = 0; i < 26; i++) {
20+
if (rank[i] > 0) res.push(chars[i]);
21+
}
22+
res.sort((a, b) => {
23+
return rank[chars.indexOf(b)] - rank[chars.indexOf(a)];
24+
});
25+
26+
return res.join('');
27+
};
Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
1-
export function repeatedSubstringPattern(s) {
2-
let subString = '';
3-
let i = 0;
4-
5-
while (i < s.length) {
6-
const len = subString.length;
7-
if (
8-
subString[0] === s[i] &&
9-
!(s.length % len) &&
10-
subString === s.slice(i, i + len)
11-
) {
12-
i += len;
13-
if (i === s.length) return true;
14-
} else {
15-
subString = s.slice(0, i + 1);
16-
i++;
1+
/**
2+
* @param {string} s
3+
* @return {boolean}
4+
*/
5+
var repeatedSubstringPattern = function (s) {
6+
for (let i = 1; i <= s.length / 2; i++) {
7+
if (s.slice(0, i).repeat(s.length / i) === s) {
8+
return true;
179
}
1810
}
1911

2012
return false;
21-
}
13+
};

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /