Algorithmic Solutions: String Manipulation and Parsing

String Duplicate Removal

def removeDuplicates(self, s: str, k: int) -> str:
    stack = []
    for char in s:
        if not stack:
            stack.append((char, 1))
        else:
            last_char, last_cnt = stack[-1]
            if char != last_char:
                stack.append((char, 1))
            else:
                if last_cnt + 1 < k:
                    stack[-1] = (last_char, last_cnt + 1)
                else:
                    stack.pop()
    return ''.join(c * cnt for 
Read More

String Operations and Queue Data Structures Explained

String Storage and Memory Representation

A string is a collection of characters stored together in memory. Strings are used to store names, words, sentences, and other text data in computer systems. In programming languages like C, a string is stored as an array of characters and ends with a special null character '\0'.

Example of String: char name[] = "ROHIT";

In memory, the string is stored as:

| R | O | H | I | T | \0 |

Here, \0 represents the end of the string.

Methods of String Storage

1. Fixed Length

Read More

Data Structures and Algorithms: Core Concepts

Unit I: Fundamentals

1. Elementary Data Organization

Elementary data organization refers to the basic method of arranging and managing data in a computer system. Data is organized in the form of characters, fields, records, files, and databases. A character is the smallest unit of data, while a field is a group of related characters. Multiple fields form a record, and records together create a file. Proper data organization helps in storing, accessing, and processing information efficiently. It improves

Read More

NC, CNC, and DNC Machines: Key Differences and Functions

Comparison of NC, CNC, and DNC Machines

FeatureNC MachineCNC MachineDNC Machine
Full FormNumerical ControlComputer Numerical ControlDirect Numerical Control
Control MethodPunched tape/cardsOnboard computerCentral computer network
Program StorageExternal tapeMachine memoryCentral computer
EditingDifficultEasyVery easy/centralized
FlexibilityLess flexibleMore flexibleHighly flexible
AccuracyModerateHighVery high
Automation LevelLowHighVery high
Human InterventionMoreLessVery less
Data TransferManualAutomaticCommunication
Read More

Dataflow Architectures and AI Hardware Optimization

Dataflow Architectures in Machine Learning

Why use dataflow architecture for ML?

Dataflow architectures eliminate the need for a program counter, executing instructions based solely on input data availability. This minimizes the massive energy and latency costs associated with fetching data from main memory (DRAM) in traditional von Neumann architectures, making it highly efficient for Machine Learning workloads.

Mapping Deep Learning to Dataflow

Multiply-and-Accumulate (MAC) operations and deep loop

Read More

Operating Systems Exam Preparation: Core Concepts

CPU Scheduling Fundamentals

CPU scheduling is the process by which the operating system selects which process to execute next. Algorithms aim to optimize metrics such as waiting time, turnaround time, and response time.

Key Performance Metrics

  • Completion Time (CT): The moment a process finishes.
  • Turnaround Time (TAT): TAT = Completion Time - Arrival Time
  • Waiting Time (WT): WT = Turnaround Time - Burst Time
  • Response Time (RT): RT = First time it runs - Arrival Time

Base Example Data

ProcessArrivalBurst
P106
P213
P328
P434

Scheduling

Read More