Skip to main content

Send Email from Java

Nov 19, 2022CodeCatch
Loading...

More Java Posts

WordleSolver

Feb 1, 2022LeifMessinger

0 likes • 1 view

//Leif Messinger
//Solves wordle
//Needs a list of wordle words, newline separated and 5 characters each
import 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 words
final 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 character
for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned
if(possibleWords.get(possibleWord).charAt(i) != chosenWord.charAt(i)){
possibleWords.remove(possibleWord);
}
}
}
}
System.out.println("Is it misplaced?");
//Stores a count of every letter misplaced
short[] misplacedCounts = new short[('z'-'a')+1]; //Praise be the garbage collector
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 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 unsigned
int 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 characters
if(count < misplacedCounts[(chosenWord.charAt(i) - 'a') - 1]){
possibleWords.remove(possibleWord);
}
}
//Also filter out words where that letter doesn't belong there
for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned
if(possibleWords.get(possibleWord).charAt(i) == chosenWord.charAt(i)){
possibleWords.remove(possibleWord);
continue; //Breaks the current word and moves on in the loop
}
}
}
}
}
}
}

merge sort

Nov 18, 2022AustinLeath

0 likes • 0 views

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");
}
}

Random Integers -> file

Nov 19, 2022CodeCatch

0 likes • 1 view

//sample code to write 100 random ints to a file, 1 per line
import 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");
}
}
}

Heap sort

Nov 19, 2022CodeCatch

0 likes • 0 views

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 child
if(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));
}
}

Me

Feb 6, 2021Daedalus

0 likes • 0 views

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...");
}
}
//██╗  ░█████╗░███╗░░░███╗  ██████╗░░█████╗░███████╗██████╗░░█████╗░██╗░░░░░██╗░░░██╗░██████╗
//██║  ██╔══██╗████╗░████║  ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██║░░░░░██║░░░██║██╔════╝
//██║  ███████║██╔████╔██║  ██║░░██║███████║█████╗░░██║░░██║███████║██║░░░░░██║░░░██║╚█████╗░
//██║  ██╔══██║██║╚██╔╝██║  ██║░░██║██╔══██║██╔══╝░░██║░░██║██╔══██║██║░░░░░██║░░░██║░╚═══██╗
//██║  ██║░░██║██║░╚═╝░██║  ██████╔╝██║░░██║███████╗██████╔╝██║░░██║███████╗╚██████╔╝██████╔╝
//╚═╝  ╚═╝░░╚═╝╚═╝░░░░░╚═╝  ╚═════╝░╚═╝░░╚═╝╚══════╝╚═════╝░╚═╝░░╚═╝╚══════╝░╚═════╝░╚═════╝░

longest sequence

Oct 7, 2023AustinLeath

0 likes • 5 views

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
}
}