Loading...
More Java Posts
//Leif Messinger//Solves wordle//Needs a list of wordle words, newline separated and 5 characters eachimport java.util.*;import java.io.File;import java.io.FileNotFoundException;class WordleSolver {public static void printPointer(int position){for(int i = 0; i < position; ++i){System.out.print(" ");}System.out.print("^");}public static void main(String[] args) throws FileNotFoundException{if(args.length < 1) return;File dictionary = new File(args[0]);Scanner sc = new Scanner(dictionary);ArrayList<String> possibleWords = new ArrayList<String>();while(sc.hasNextLine()){possibleWords.add(sc.nextLine());}Scanner input = new Scanner(System.in);while(possibleWords.size() > 0){//Choose a word out of the possible wordsfinal int randomIndex = (int)(Math.random() * possibleWords.size());String chosenWord = possibleWords.get(randomIndex);possibleWords.remove(randomIndex);System.out.println("Is it correct?");for(int i = 0; i < chosenWord.length(); ++i){System.out.println(chosenWord);printPointer(i);System.out.println(" y/n?");if(input.nextLine().toLowerCase().contains("y")){//Filter by correct characterfor(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsignedif(possibleWords.get(possibleWord).charAt(i) != chosenWord.charAt(i)){possibleWords.remove(possibleWord);}}}}System.out.println("Is it misplaced?");//Stores a count of every letter misplacedshort[] misplacedCounts = new short[('z'-'a')+1]; //Praise be the garbage collectorfor(int i = 0; i < chosenWord.length(); ++i){System.out.println(chosenWord);printPointer(i);System.out.println(" y/n?");if(input.nextLine().toLowerCase().contains("y")){//Filter to make sure there's at least as many letters as needed++misplacedCounts[(chosenWord.charAt(i) - 'a') - 1];for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsignedint count = 0;for(int j = 0; j < possibleWords.get(possibleWord).length(); ++j){if(possibleWords.get(possibleWord).charAt(j) == chosenWord.charAt(i))++count;}//If there's not enough of the character that we need, then we remove that from the list of possible charactersif(count < misplacedCounts[(chosenWord.charAt(i) - 'a') - 1]){possibleWords.remove(possibleWord);}}//Also filter out words where that letter doesn't belong therefor(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsignedif(possibleWords.get(possibleWord).charAt(i) == chosenWord.charAt(i)){possibleWords.remove(possibleWord);continue; //Breaks the current word and moves on in the loop}}}}}}}
import static java.lang.System.*;import java.util.Arrays;public class MergeSort{private static int passCount;public static void mergeSort(int[] list){passCount=0;mergeSort(list, 0, list.length);}private static void mergeSort(int[] list, int front, int back) //O( Log N ){int mid = (front+back)/2;if(mid==front) return;mergeSort(list, front, mid);mergeSort(list, mid, back);merge(list, front, back);}private static void merge(int[] list, int front, int back) //O(N){int dif = back-front;int[] temp = new int[dif];int beg = front, mid = (front+back)/2;int saveMid = mid;int spot = 0;while(beg < saveMid && mid < back) {if(list[beg] < list[mid]) {temp[spot++] = list[beg++];} else {temp[spot++] = list[mid++];}}while(beg < saveMid)temp[spot++] = list[beg++];while(mid < back)temp[spot++] = list[mid++];for(int i = 0; i < back-front; i++) {list[front+i] = temp[i];}System.out.println("pass " + passCount++ + " " + Arrays.toString(list) + "\n");}public static void main(String args[]){mergeSort(new Comparable[]{ 9, 5, 3, 2 });System.out.println("\n");mergeSort(new Comparable[]{ 19, 52, 3, 2, 7, 21 });System.out.println("\n");mergeSort(new Comparable[]{ 68, 66, 11, 2, 42, 31});System.out.println("\n");}}
//sample code to write 100 random ints to a file, 1 per lineimport java.io.PrintStream;import java.io.IOException;import java.io.File;import java.util.Random;public class WriteToFile {public static void main(String[] args) {try {PrintStream writer = new PrintStream(new File("randInts.txt"));Random r = new Random();final int LIMIT = 100;for (int i = 0; i < LIMIT; i++) {writer.println(r.nextInt());}writer.close();} catch (IOException e) {System.out.println("An error occured while trying to write to the file");}}}
import java.util.*;public class HeapSortMain {public static void buildheap(int []arr) {/** As last non leaf node will be at (arr.length-1)/2* so we will start from this location for heapifying the elements* */for(int i=(arr.length-1)/2; i>=0; i--){heapify(arr,i,arr.length-1);}}public static void heapify(int[] arr, int i,int size) {int left = 2*i+1;int right = 2*i+2;int max;if(left <= size && arr[left] > arr[i]){max=left;} else {max=i;}if(right <= size && arr[right] > arr[max]) {max=right;}// If max is not current node, exchange it with max of left and right childif(max!=i) {exchange(arr,i, max);heapify(arr, max,size);}}public static void exchange(int[] arr,int i, int j) {int t = arr[i];arr[i] = arr[j];arr[j] = t;}public static int[] heapSort(int[] arr) {buildheap(arr);int sizeOfHeap=arr.length-1;for(int i=sizeOfHeap; i>0; i--) {exchange(arr,0, i);sizeOfHeap=sizeOfHeap-1;heapify(arr, 0,sizeOfHeap);}return arr;}public static void main(String[] args) {int[] arr={1,10,16,19,3,5};System.out.println("Before Heap Sort : ");System.out.println(Arrays.toString(arr));arr=heapSort(arr);System.out.println("=====================");System.out.println("After Heap Sort : ");System.out.println(Arrays.toString(arr));}}
public class Daedalus extends Athenian{private Story story;public ArrayList<Skill> skills = new ArrayList<Skill>();public ArrayList<Athenian> children = new ArrayList<Athenian>();public Daedalus(Story story, ArrayList<Skill> inherentSkills){if(story != null)System.out.println("ERROR No one is created with a story.");skills.add(inherentSkills);}public Momento advanceStory(Scene s){System.err.println("ERROR Don't know how to proceed...");}}//██╗ ░█████╗░███╗░░░███╗ ██████╗░░█████╗░███████╗██████╗░░█████╗░██╗░░░░░██╗░░░██╗░██████╗//██║ ██╔══██╗████╗░████║ ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██║░░░░░██║░░░██║██╔════╝//██║ ███████║██╔████╔██║ ██║░░██║███████║█████╗░░██║░░██║███████║██║░░░░░██║░░░██║╚█████╗░//██║ ██╔══██║██║╚██╔╝██║ ██║░░██║██╔══██║██╔══╝░░██║░░██║██╔══██║██║░░░░░██║░░░██║░╚═══██╗//██║ ██║░░██║██║░╚═╝░██║ ██████╔╝██║░░██║███████╗██████╔╝██║░░██║███████╗╚██████╔╝██████╔╝//╚═╝ ╚═╝░░╚═╝╚═╝░░░░░╚═╝ ╚═════╝░╚═╝░░╚═╝╚══════╝╚═════╝░╚═╝░░╚═╝╚══════╝░╚═════╝░╚═════╝░
import java.util.Arrays;public class LongestIncreasingSubsequence {public int lengthOfLIS(int[] nums) {if (nums.length == 0) {return 0;}int[] dp = new int[nums.length];Arrays.fill(dp, 1); // Initialize all elements in dp array to 1, as each element itself is a valid subsequence of length 1.int maxLength = 1; // Initialize the maximum length to 1, considering a single element as the sequence.for (int i = 1; i < nums.length; i++) {for (int j = 0; j < i; j++) {if (nums[i] > nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1); // If nums[i] is greater than nums[j], update the longest subsequence length ending at i.}}maxLength = Math.max(maxLength, dp[i]); // Update the maximum length if needed.}return maxLength;}public static void main(String[] args) {LongestIncreasingSubsequence lis = new LongestIncreasingSubsequence();int[] nums = {10, 9, 2, 5, 3, 7, 101, 18};int result = lis.lengthOfLIS(nums);System.out.println("Length of the Longest Increasing Subsequence: " + result); // Output: 4}}