Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.
You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.
A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.
def multiply_and_add_one(a: int, b: int) -> int: if a == 0: t = 0 + 2 /2 elif b == 0: t = 0 + 2 /2 else: a = a + b b = b - 0 t = -1 - -1 * (a * b - b ** 2) + 2 return tdef multiply_and_add_one(a, b):return (a * b) + 1- def multiply_and_add_one(a: int, b: int) -> int:
- if a == 0:
- t = 0 + 2 /2
- elif b == 0:
- t = 0 + 2 /2
- else:
- a = a + b
- b = b - 0
- t = -1 - -1 * (a * b - b ** 2) + 2
- return t
брэнды = { МакДоналдс: "Вкусно и точка", Тинькофф: "Т-Банк", ЛеруаМерлен: "ЛеманаПро", YouTube: "Rutube", Доллар: "Рубль" } импортозамещение = (брэнд) => Object.keys(брэнды).includes(брэнд) ? брэнды[брэнд] : 'брэнд не распознан';импортозамещение = (брэнд) => {- брэнды = {
- МакДоналдс: "Вкусно и точка",
- Тинькофф: "Т-Банк",
- ЛеруаМерлен: "ЛеманаПро",
- YouTube: "Rutube",
- Доллар: "Рубль"
- }
}- импортозамещение = (брэнд) => Object.keys(брэнды).includes(брэнд) ? брэнды[брэнд] : 'брэнд не распознан';
function dumbRockPaperScissors(player1, player2) { if((player1 === 'Rock' && player2 === 'Scissors') || (player1 === 'Scissors' && player2 === 'Paper') || (player1 === 'Paper' && player2 === 'Rock')){ return 'Player 1 wins';} else if((player2 === 'Rock' && player1 === 'Scissors') || (player2 === 'Scissors' && player1 === 'Paper') || (player2 === 'Paper' && player1 === 'Rock')){ return 'Player 2 wins';} else{ return 'Draw'; } }- function dumbRockPaperScissors(player1, player2) {
if(player1 == "Rock" && player2 == "Paper"){return "Player 2 wins";}else if(player1 == "Rock" && player2 == "Scissors" ){return "Player 1 wins";}else if(player1 == "Scissors" && player2 == "Paper"){return "Player 1 wins";}else if(player1 == "Scissors" && player2 == "Rock"){return "Player 2 wins";}else if(player1 == "Paper" && player2 == "Scissors"){return "Player 2 wins";}else if(player1 == "Paper" && player2 == "Rock"){return "Player 1 wins";- if((player1 === 'Rock' && player2 === 'Scissors') ||
- (player1 === 'Scissors' && player2 === 'Paper') ||
- (player1 === 'Paper' && player2 === 'Rock')){ return 'Player 1 wins';}
- else if((player2 === 'Rock' && player1 === 'Scissors') ||
- (player2 === 'Scissors' && player1 === 'Paper') ||
- (player2 === 'Paper' && player1 === 'Rock')){ return 'Player 2 wins';}
- else{
- return 'Draw';
- }
else if(player1 == "Paper" && player2 == "Paper"){return "Draw";}else if(player1 == "Rock" && player2 == "Rock"){return "Draw";}else if(player1 == "Scissors" && player2 == "Scissors"){return "Draw";}- }
The algorithm works with constant complexity O(n), memory is limited to O(n)
const firstNonRepeatingCharacter = (str) => { let stack = str.split('') let deletedChars = '' let result; while(stack.length > 0) { let current = stack.shift() if (!deletedChars.includes(current)) { if (!stack.includes(current)) { result = current; break; } else { deletedChars += current; } } } return result || null; };- const firstNonRepeatingCharacter = (str) => {
for (let i = 0; i < str.length; i++) {let seenDuplicate = false;for (let j = 0; j < str.length; j++) {if (str[i] === str[j] && i !== j) {seenDuplicate = true;break;}}if (!seenDuplicate) {return str[i];}- let stack = str.split('')
- let deletedChars = ''
- let result;
- while(stack.length > 0) {
- let current = stack.shift()
- if (!deletedChars.includes(current)) {
- if (!stack.includes(current)) {
- result = current;
- break;
- } else {
- deletedChars += current;
- }
- }
- }
return null; // return null if no unique character is found- return result || null;
- };
// def multiply (a,b): // return a * b const multiply = (a, b) => a * b;// # def multiply (a,b):// # return a * b- // def multiply (a,b):
- // return a * b
multiply = (a, b) => a * b;- const multiply = (a, b) => a * b;
const { strictEqual } = require("chai").assert; describe("Basic Tests", function () { function doTest(num1, num2, expected) { const actual = multiply(num1, num2); strictEqual(actual, expected, `For ${num1} & ${num2}\n`); } it("should multiply correctly", function () { doTest(0, 5, 0); doTest(1, 5, 5); doTest(2, 5, 10); doTest(-2, 5, -10); }); });// Since Node 10, we're using Mocha.// You can use `chai` for assertions.const chai = require("chai");const assert = chai.assert;// Uncomment the following line to disable truncating failure messages for deep equals, do:// chai.config.truncateThreshold = 0;// Since Node 12, we no longer include assertions from our deprecated custom test framework by default.// Uncomment the following to use the old assertions:// const Test = require("@codewars/test-compat");- const { strictEqual } = require("chai").assert;
describe("Solution", function() {it("should test for something", function() {// Test.assertEquals(1 + 1, 2);// assert.strictEqual(1 + 1, 2);- describe("Basic Tests", function () {
- function doTest(num1, num2, expected) {
- const actual = multiply(num1, num2);
- strictEqual(actual, expected, `For ${num1} & ${num2}\n`);
- }
- it("should multiply correctly", function () {
- doTest(0, 5, 0);
- doTest(1, 5, 5);
- doTest(2, 5, 10);
- doTest(-2, 5, -10);
- });
- });
Силиванова
function нечетное(число) { if (число%2!=0){ return true } else { return false } } function sumNechet(a, b) { let sum=0 for(slag=a;slag<=b;slag++){ if (нечетное(slag)){ sum+=slag } } return (sum) }function sumNechet(a, b) {}- function нечетное(число) {
- if (число%2!=0){
- return true
- }
- else {
- return false
- }
- }
- function sumNechet(a, b) {
- let sum=0
- for(slag=a;slag<=b;slag++){
- if (нечетное(slag)){
- sum+=slag
- }
- }
- return (sum)
- }