Start a new Kumite
AllAgda (Beta)BF (Beta)CCFML (Beta)ClojureCOBOL (Beta)CoffeeScriptCommonLisp (Beta)CoqC++CrystalC#D (Beta)DartElixirElm (Beta)Erlang (Beta)Factor (Beta)Forth (Beta)Fortran (Beta)F#GoGroovyHaskellHaxe (Beta)Idris (Beta)JavaJavaScriptJulia (Beta)Kotlinλ Calculus (Beta)LeanLuaNASMNim (Beta)Objective-C (Beta)OCaml (Beta)Pascal (Beta)Perl (Beta)PHPPowerShell (Beta)Prolog (Beta)PureScript (Beta)PythonR (Beta)RacketRaku (Beta)Reason (Beta)RISC-V (Beta)RubyRustScalaShellSolidity (Beta)SQLSwiftTypeScriptVB (Beta)
Show only mine

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.

Ad
Ad
Strings

Solución espacions en blanco

Code
Diff
  • import java.text.ParseException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Random;
    import java.util.concurrent.ThreadLocalRandom;
    
    public class Kata{
    	public static String[] replaceLetter(String str) {
    
    		ArrayList<String> arr = new ArrayList<>();
    		StringBuilder strFinal = new StringBuilder(str);
    
    		for (int i = 0; i < str.length(); i++) {
    			int nextIndex = (i + 1) % str.length();
    
    			// check white space
    			if (str.charAt(i) != ' ' && str.charAt(nextIndex) != ' ') {
    
    				nextIndex = (i + 1) % str.length();
    				strFinal.replace(i, i + 1, String.valueOf(str.charAt(nextIndex)));
    				arr.add(strFinal.toString());
    				strFinal.replace(0, str.length(), str);
    			}
    
    		}
    
    		System.out.println(arr.toString());
    
    		String[] array = arr.toArray(new String[arr.size()]);
    
    		return array;
    
    	}
     }
    • import java.text.ParseException;
    • import java.util.ArrayList;
    • import java.util.Arrays;
    • import java.util.Random;
    • import java.util.concurrent.ThreadLocalRandom;
    • public class Kata{
    • public static String[] replaceLetter(String str) {
    • class Kata {
    • public static String[] replaceLetter(String str) {
    • ArrayList<String> arr = new ArrayList<>();
    • ArrayList<String> arr = new ArrayList<>();
    • StringBuilder strFinal = new StringBuilder(str);
    • for (int i = 0; i < str.length(); i++) {
    • int nextIndex = (i + 1) % str.length();
    • if (str.charAt(i) != ' ') {
    • //comprobar si i + 1 es un espacio
    • int nextIndex = (i + 1) % str.length();
    • // check white space
    • if (str.charAt(i) != ' ' && str.charAt(nextIndex) != ' ') {
    • nextIndex = (i + 1) % str.length();
    • strFinal.replace(i, i + 1, String.valueOf(str.charAt(nextIndex)));
    • arr.add(strFinal.toString());
    • strFinal.replace(0, str.length(), str);
    • }
    • }
    • // Convertimos ArrayList a Array
    • String[] array = arr.toArray(new String[arr.size()]);
    • return array;
    • }
    • }
    • System.out.println(arr.toString());
    • String[] array = arr.toArray(new String[arr.size()]);
    • return array;
    • }
    • }
Fundamentals
Arrays
Code
Diff
  • class Solution{
      
     public static int lastPoint(int fuel, int consumption, int[] stations) {
     
        if (fuel / consumption < stations[0]) {
            return -1;
        }
    
        int fuelLeft = fuel - stations[0] * consumption;
    
        for (int i = 1; i < stations.length; i++) {
            int distance = stations[i] - stations[i - 1];
    
            if (fuelLeft > distance * consumption) {
     
                fuelLeft =  fuelLeft - (distance * consumption);
            }
            else {
                return stations[i - 1];
                
            }
        }
         
        return stations[stations.length - 1]; 
    }
    
    }
    • class Solution{
    • public static int lastPoint(int fuel, int consumption, int[] stations) {
    • if (fuel / consumption < stations[0]) {
    • return -1;
    • }
    • int fuelLeft = fuel - stations[0] * consumption;
    • for (int i = 1; i < stations.length; i++) {
    • int distance = stations[i] - stations[i - 1];
    • fuelLeft = fuelLeft - distance * consumption;
    • if (fuelLeft < 0) {
    • if (fuelLeft > distance * consumption) {
    • fuelLeft = fuelLeft - (distance * consumption);
    • }
    • else {
    • return stations[i - 1];
    • }
    • }
    • return -1;
    • return stations[stations.length - 1];
    • }
    • }
Code
Diff
  • import java.util.HashMap;
    import java.util.Map;
    public class DiscoverTheValue{
      
      public static int hello(String s) {
    		Map<String, Integer> map = new HashMap<>();
    		int result = 0,num=1,letr=0;
    		boolean correcto= false;
    		for (int i = 0; i < 26; i++) {
    			map.put(Character.toString('a' + i), i + 1);
    		}
    
    		// map.forEach((a,b)->System.out.println(a+"-"+b));
    
    		String numeros = "", letras = "";
    		for (int c = 0; c < s.length(); c++) {
    			if (!String.valueOf(s.charAt(c)).equals(" ") && s.length()!=c+1) {
    				if (String.valueOf(s.charAt(c)).matches("^\\d$")) {
    					//numeros = numeros + s.charAt(c);
    					correcto=true;
    					num=num*s.charAt(c);
    				} else if (String.valueOf(s.charAt(c)).matches("^[a-z]$")) {
    					//letras = letras + s.charAt(c);
    				}
    
    			} else {
    				
    				
    				correcto=false;
    				numeros="";letras="";
    			}
    
    		}
    
    		System.out.println(numeros);
    		System.out.println(letras);
    
    		return result;
    	}
      
      //Segunda opcion a considerar
    public static int discover(String valor) {
    		if(valor.isEmpty()||valor.isBlank()) return 0;
    		HashMap<String, Integer> values = new HashMap<>();
    		for(int i=0;i<26;i++) { 
    			values.put(Character.toString('a'+i), i+1); 
    			}
    		boolean hasNumber = false;
    		int score = 0, numberMultiplication = 1, characterSum = 0, stringPosition = 0;
    		while(stringPosition<valor.length()) {
    			boolean firstEmptySpace = true;
    			while(String.valueOf(valor.charAt(stringPosition)).equals(" ") && stringPosition<valor.length()-1) {
    				stringPosition++;
    				if(firstEmptySpace) {
    					firstEmptySpace = false;
    					if(hasNumber)score+=Integer.compare(numberMultiplication, characterSum);
    					else score--;
    				}
    				numberMultiplication =1;
    				characterSum=0;
    				hasNumber=false;
    			}
    			if(Character.isDigit(valor.charAt(stringPosition))) {
    				numberMultiplication*=Character.getNumericValue(valor.charAt(stringPosition));
    				hasNumber = true;
    			}
    			else if(Character.isAlphabetic(valor.charAt(stringPosition))) characterSum+=values.get(String.valueOf(valor.charAt(stringPosition)));
    			if(stringPosition==valor.length()-1) {
    				if(hasNumber)score+=Integer.compare(numberMultiplication, characterSum);
    				else score--;
    			}
    			stringPosition++;
    		}
    		return Integer.compare(score, 0);
    	}
      
    }
    • public class pp{
    • import java.util.HashMap;
    • import java.util.Map;
    • public class DiscoverTheValue{
    • public static int hello(String s) {
    • Map<String, Integer> map = new HashMap<>();
    • int result = 0,num=1,letr=0;
    • boolean correcto= false;
    • for (int i = 0; i < 26; i++) {
    • map.put(Character.toString('a' + i), i + 1);
    • }
    • // map.forEach((a,b)->System.out.println(a+"-"+b));
    • String numeros = "", letras = "";
    • for (int c = 0; c < s.length(); c++) {
    • if (!String.valueOf(s.charAt(c)).equals(" ") && s.length()!=c+1) {
    • if (String.valueOf(s.charAt(c)).matches("^\\d$")) {
    • //numeros = numeros + s.charAt(c);
    • correcto=true;
    • num=num*s.charAt(c);
    • } else if (String.valueOf(s.charAt(c)).matches("^[a-z]$")) {
    • //letras = letras + s.charAt(c);
    • }
    • } else {
    • correcto=false;
    • numeros="";letras="";
    • }
    • }
    • System.out.println(numeros);
    • System.out.println(letras);
    • return result;
    • }
    • //Segunda opcion a considerar
    • public static int discover(String valor) {
    • if(valor.isEmpty()||valor.isBlank()) return 0;
    • HashMap<String, Integer> values = new HashMap<>();
    • for(int i=0;i<26;i++) {
    • values.put(Character.toString('a'+i), i+1);
    • }
    • boolean hasNumber = false;
    • int score = 0, numberMultiplication = 1, characterSum = 0, stringPosition = 0;
    • while(stringPosition<valor.length()) {
    • boolean firstEmptySpace = true;
    • while(String.valueOf(valor.charAt(stringPosition)).equals(" ") && stringPosition<valor.length()-1) {
    • stringPosition++;
    • if(firstEmptySpace) {
    • firstEmptySpace = false;
    • if(hasNumber)score+=Integer.compare(numberMultiplication, characterSum);
    • else score--;
    • }
    • numberMultiplication =1;
    • characterSum=0;
    • hasNumber=false;
    • }
    • if(Character.isDigit(valor.charAt(stringPosition))) {
    • numberMultiplication*=Character.getNumericValue(valor.charAt(stringPosition));
    • hasNumber = true;
    • }
    • else if(Character.isAlphabetic(valor.charAt(stringPosition))) characterSum+=values.get(String.valueOf(valor.charAt(stringPosition)));
    • if(stringPosition==valor.length()-1) {
    • if(hasNumber)score+=Integer.compare(numberMultiplication, characterSum);
    • else score--;
    • }
    • stringPosition++;
    • }
    • return Integer.compare(score, 0);
    • }
    • }
Code
Diff
  • public class Encrypt {
      
      public static String encryptByVowels(String str) {
        String newS = "";
    		int cont = 0;
    		for(char c: str.toLowerCase().toCharArray()) {
    			if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
    				cont++;
    		}
    		for(char c: str.toCharArray()) {
    			int newChar = (int) c;
    			if(c != ' '){
            newChar = c+cont;
            if(newChar > 90 && newChar < 97)
    				  newChar+=(97-newChar);
            if(newChar > 122) {
              newChar = 64 + newChar%122;
              if(newChar > 90 && newChar < 97)
                newChar+=(97-newChar);
            }
          }
    			newS+=""+(char)newChar;
    		}
    		return newS;
      }
    }
    • public class Encrypt {
    • public static String encryptByVowels(String str) {
    • return null;
    • String newS = "";
    • int cont = 0;
    • for(char c: str.toLowerCase().toCharArray()) {
    • if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
    • cont++;
    • }
    • for(char c: str.toCharArray()) {
    • int newChar = (int) c;
    • if(c != ' '){
    • newChar = c+cont;
    • if(newChar > 90 && newChar < 97)
    • newChar+=(97-newChar);
    • if(newChar > 122) {
    • newChar = 64 + newChar%122;
    • if(newChar > 90 && newChar < 97)
    • newChar+=(97-newChar);
    • }
    • }
    • newS+=""+(char)newChar;
    • }
    • return newS;
    • }
    • }
Strings
Code
Diff
  • //hacer que no funcione con una expresion regular con el caracter fin de cadena
    
    public class ConfusedDouble {
      
       public static double clearDouble(String str) {
    		if (str == null || str.length() == 0) return 0; 
    		return Double.parseDouble(str.replaceAll("[^0-9.]", ""));
    	}
      
    }
     
    • //hacer que no funcione con una expresion regular con el caracter fin de cadena
    • public class Solution {
    • public class ConfusedDouble {
    • public static double clearDouble(String str) {
    • if (str == null || str.length() == 0) return 0;
    • return Double.parseDouble(str.replaceAll("[^0-9.]", ""));
    • }
    • }