Repeated String

Repeated String

 

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    static long repeatedString(String s, long n) {
        int aInInputString = 0;
        for (int i = 0; i < s.length(); i++)
        if(s.charAt(i) == 'a') aInInputString++;
        long completeRepeats = n / s.length();

        long rem = n % s.length();
        int aInRemaining = 0;
        for (int i = 0; i < rem; i++)
        if(s.charAt(i) == 'a') aInRemaining++;

        return completeRepeats*aInInputString + aInRemaining;
    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String s = scanner.nextLine();

        long n = scanner.nextLong();
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

        long result = repeatedString(s, n);

        bufferedWriter.write(String.valueOf(result));
        bufferedWriter.newLine();

        bufferedWriter.close();

        scanner.close();
    }
}

303. Range Sum Query – Immutable

https://leetcode.com/problems/range-sum-query-immutable/

class NumArray {
static int[] nums;
    public NumArray(int[] nums) {
     this.nums = nums;   
    }
    
    public int sumRange(int i, int j) {
        if (i == j)
            return nums[i];
        if (i +1 == j)
            return nums[i] + nums[j];
        
        return nums[i] + sumRange(i+1 , j-1) + nums[j];
        

    }
}

/**
 * Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(i,j);
 */

844. Backspace String Compare

844. Backspace String Compare

class Solution {
   public boolean backspaceCompare(String S, String T) {
		LinkedList s = new LinkedList();
		LinkedList t = new LinkedList();

		for (int i = 0; i < S.length(); i++) {
			if (S.charAt(i) == '#') {
				if (!s.isEmpty())
					s.pop();
			} else
				s.push(S.charAt(i));
		}

		for (int i = 0; i < T.length(); i++) {
			if (T.charAt(i) == '#') {
				if (!t.isEmpty())
					t.pop();
			} else
				t.push(T.charAt(i));
		}
		if (s.size() != t.size())
			return false;
		while (!s.isEmpty()) {
			if (s.pop() != t.pop())
				return false;
		}

		return true;
	}
}