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 calculator(a, b, op): if not (isinstance(a, (int, float)) and isinstance(b, (int, float))): return "Operands must be numbers" match op: case '+': return a + b case '-': return a - b case '*': return a * b case '/': return "Cannot divide by zero" if b == 0 else a / b case _: return "Invalid operator"def calculator(a, b, operator):if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):return "Operands must be numbers"operations = {'+': lambda x, y: x + y,'-': lambda x, y: x - y,'*': lambda x, y: x * y,'/': lambda x, y: x / y if y != 0 else "Cannot divide by zero"}if operator not in operations:return "Invalid operator"return operations[operator](a, b)- def calculator(a, b, op):
- if not (isinstance(a, (int, float)) and isinstance(b, (int, float))): return "Operands must be numbers"
- match op:
- case '+': return a + b
- case '-': return a - b
- case '*': return a * b
- case '/': return "Cannot divide by zero" if b == 0 else a / b
- case _: return "Invalid operator"
Trust me, it works with my version of 2.
class MyInt(int): def __lt__(self, x): return True def __gt__(self, x): return False def __eq__(self, x): return False def __lte__(self, x): return False def __gte__(self, x): return False def above_two(arg): return arg > MyInt(2)#If it is not true currently, I shall make it true- class MyInt(int):
- def __lt__(self, x):
- return True
- def __gt__(self, x):
- return False
- def __eq__(self, x):
- return False
- def __lte__(self, x):
- return False
- def __gte__(self, x):
- return False
- def above_two(arg):
if not(arg > 2):while not(arg > 2):arg += 1return Truepasselse:return True- return arg > MyInt(2)
Runtime error :)
import random def cursed_world(): l = [] for letter in "abcdefghijklmnopqrstuvwxyz ": if letter == 'h': l.append(letter) if letter == 'e': l.append(letter) if letter == 'l': l.append(letter) l.append(letter) l.append(letter) if letter == 'o': l.append(letter) l.append(letter) if letter == 'r': l.append(letter) if letter == 'w': l.append(letter) if letter == 'd': l.append(letter) if letter == " ": l.append(letter) while True: random.shuffle(l) if "".join(l) == "hello world": return "".join(l)- import random
- def cursed_world():
return "hello world"- l = []
- for letter in "abcdefghijklmnopqrstuvwxyz ":
- if letter == 'h':
- l.append(letter)
- if letter == 'e':
- l.append(letter)
- if letter == 'l':
- l.append(letter)
- l.append(letter)
- l.append(letter)
- if letter == 'o':
- l.append(letter)
- l.append(letter)
- if letter == 'r':
- l.append(letter)
- if letter == 'w':
- l.append(letter)
- if letter == 'd':
- l.append(letter)
- if letter == " ":
- l.append(letter)
- while True:
- random.shuffle(l)
- if "".join(l) == "hello world":
- return "".join(l)
let d = 90; o = d < 3 ? "Almost there": "yuh gotta wait a little" console.log(o);let distance = 90; // try changing this value to test different outputs- let d = 90;
output = distance < 3 ? "Almost there": "yuh gotta wait a little"console.log(output);- o = d < 3 ? "Almost there": "yuh gotta wait a little"
- console.log(o);
В студенческой группе учатся мальчики и девочки. Иногда важно знать кого из них больше или меньше, чтобы подготовиться к празднику. Разработайте код функции, возвращающей эту информацию. Входным параметром функции будет последовательность 1 и -1, где 1 символизирует мальчика, -1 - девочку. Есть только одно условие - код НЕ должен содержать символов английского алфавита!
(1, -1, 1, 1, 1, -1, -1) // Девочек на 1 меньше (1, -1, 1, 1, 1, -1, -1, -1, -1) // Девочек на 1 больше (1, -1, 1, 1, 1, -1, -1, -1) // Девочек и мальчиков равное количество
сколькоСтудентовОдногоПола = (пол, полСтудента1, ...остальные) => полСтудента1 ? сколькоСтудентовОдногоПола(пол, ...остальные) + (полСтудента1 === пол ? 1 : 0) : 0; когоБольше = (...группа) => сколькоСтудентовОдногоПола(1, ...группа) > сколькоСтудентовОдногоПола(-1, ...группа) ? `Девочек на ${сколькоСтудентовОдногоПола(1, ...группа) - сколькоСтудентовОдногоПола(-1, ...группа)} меньше` : сколькоСтудентовОдногоПола(1, ...группа) === сколькоСтудентовОдногоПола(-1, ...группа) ? `Девочек и мальчиков равное количество` : `Девочек на ${сколькоСтудентовОдногоПола(-1, ...группа) - сколькоСтудентовОдногоПола(1, ...группа)} больше`когоБольше = (...группа) => {- сколькоСтудентовОдногоПола = (пол, полСтудента1, ...остальные) => полСтудента1
- ? сколькоСтудентовОдногоПола(пол, ...остальные) + (полСтудента1 === пол ? 1 : 0)
- : 0;
}- когоБольше = (...группа) => сколькоСтудентовОдногоПола(1, ...группа) > сколькоСтудентовОдногоПола(-1, ...группа)
- ? `Девочек на ${сколькоСтудентовОдногоПола(1, ...группа) - сколькоСтудентовОдногоПола(-1, ...группа)} меньше`
- : сколькоСтудентовОдногоПола(1, ...группа) === сколькоСтудентовОдногоПола(-1, ...группа)
- ? `Девочек и мальчиков равное количество`
- : `Девочек на ${сколькоСтудентовОдногоПола(-1, ...группа) - сколькоСтудентовОдногоПола(1, ...группа)} больше`
const chai = require("chai"); const assert = chai.assert; describe("Solution", function() { it("тестирование патриотической функции на правильность вычислений", function() { assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1), "Девочек на 1 меньше"); assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, 1), "Девочек на 2 меньше"); assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, -1, -1), "Девочек на 1 больше"); assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, -1, -1, -1), "Девочек на 2 больше"); assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, -1), "Девочек и мальчиков равное количество"); }); it("тестирование патриотической функции на количество английских слов", function() { let f=когоБольше.toString(); assert.strictEqual(f.match(/[a-z]+/gi), null); }); });- const chai = require("chai");
- const assert = chai.assert;
- describe("Solution", function() {
- it("тестирование патриотической функции на правильность вычислений", function() {
- assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1), "Девочек на 1 меньше");
- assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, 1), "Девочек на 2 меньше");
- assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, -1, -1), "Девочек на 1 больше");
- assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, -1, -1, -1), "Девочек на 2 больше");
- assert.strictEqual(когоБольше(1, -1, 1, 1, 1, -1, -1, -1), "Девочек и мальчиков равное количество");
- });
it("тестирование патриотической функции на количество английских слов", function() {- it("тестирование патриотической функции на количество английских слов", function() {
- let f=когоБольше.toString();
let arr1 = f.match(/[a-z]+/gi)let arr2 = f.match(/[а-я]+/gi)let r=arr2.length>arr1.lengthassert.strictEqual(r, true);- assert.strictEqual(f.match(/[a-z]+/gi), null);
- });
- });
Why use extra 4 bytes :D
def max_number(n): d = 0 # Get number of digits while n // (10 ** d): d += 1 # Get digit of n with length d at index i def digit(n, d, i): return int((n // (10 ** (d - i - 1)))) % 10 # Swap digits of n in place def swap(n, d, i, j): di = digit(n, d, i) dj = digit(n, d, j) n -= di * (10 ** (d - i - 1)) n -= dj * (10 ** (d - j - 1)) n += di * (10 ** (d - j - 1)) n += dj * (10 ** (d - i - 1)) return n x = None # Bubble sort an integer in place while x != n: x = n for i in range(d): di = digit(n, d, i) for j in range(d - 1, i, -1): dj = digit(n, d, j) # Swap condition if you'd prefer smallest int if di < dj: n = swap(n, d, i, j) break if x != n: break return nimport java.util.Arrays;- def max_number(n):
- d = 0
- # Get number of digits
- while n // (10 ** d):
- d += 1
- # Get digit of n with length d at index i
- def digit(n, d, i):
- return int((n // (10 ** (d - i - 1)))) % 10
- # Swap digits of n in place
- def swap(n, d, i, j):
- di = digit(n, d, i)
- dj = digit(n, d, j)
- n -= di * (10 ** (d - i - 1))
- n -= dj * (10 ** (d - j - 1))
- n += di * (10 ** (d - j - 1))
- n += dj * (10 ** (d - i - 1))
- return n
public class MaxNumber {public static long print(long number) {return number}}- x = None
- # Bubble sort an integer in place
- while x != n:
- x = n
- for i in range(d):
- di = digit(n, d, i)
- for j in range(d - 1, i, -1):
- dj = digit(n, d, j)
- # Swap condition if you'd prefer smallest int
- if di < dj:
- n = swap(n, d, i, j)
- break
- if x != n:
- break
- return n
import codewars_test as test from solution import max_number @test.describe("max_number") def _(): @test.it("Basic tests") def test_case(): test.assert_equals(max_number(4), 4) test.assert_equals(max_number(12), 21) test.assert_equals(max_number(101), 110) test.assert_equals(max_number(1234), 4321) test.assert_equals(max_number(400000005000007000), 754000000000000000) test.assert_equals(max_number(307778062924466824), 988777666444322200)import static org.junit.Assert.assertEquals;import org.junit.Test;import java.util.Random;- import codewars_test as test
- from solution import max_number
public class MaxNumberTest {@Testpublic void testFour() {assertEquals(4, MaxNumber.print(4));}@Testpublic void testTwelve() {assertEquals(21, MaxNumber.print(12));}@Testpublic void testOneHundred() {assertEquals(110, MaxNumber.print(101));}@Testpublic void testHuge1() {assertEquals(754000000000000000L, MaxNumber.print(400000005000007000L));}@Testpublic void testHuge2() {assertEquals(988777666444322200L, MaxNumber.print(307778062924466824L));}}- @test.describe("max_number")
- def _():
- @test.it("Basic tests")
- def test_case():
- test.assert_equals(max_number(4), 4)
- test.assert_equals(max_number(12), 21)
- test.assert_equals(max_number(101), 110)
- test.assert_equals(max_number(1234), 4321)
- test.assert_equals(max_number(400000005000007000), 754000000000000000)
- test.assert_equals(max_number(307778062924466824), 988777666444322200)
def multiply_and_add_one(a, b): if a > b: return multiply_and_add_one(b, a) elif b != 0: return a + multiply_and_add_one(a, b - 1) elif b == 0: return 1 else: return 0- def multiply_and_add_one(a, b):
return (a * b) + 1- if a > b:
- return multiply_and_add_one(b, a)
- elif b != 0:
- return a + multiply_and_add_one(a, b - 1)
- elif b == 0:
- return 1
- else:
- return 0