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 MoreData 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 MoreNC, CNC, and DNC Machines: Key Differences and Functions
Comparison of NC, CNC, and DNC Machines
| Feature | NC Machine | CNC Machine | DNC Machine |
|---|---|---|---|
| Full Form | Numerical Control | Computer Numerical Control | Direct Numerical Control |
| Control Method | Punched tape/cards | Onboard computer | Central computer network |
| Program Storage | External tape | Machine memory | Central computer |
| Editing | Difficult | Easy | Very easy/centralized |
| Flexibility | Less flexible | More flexible | Highly flexible |
| Accuracy | Moderate | High | Very high |
| Automation Level | Low | High | Very high |
| Human Intervention | More | Less | Very less |
| Data Transfer | Manual | Automatic | Communication |
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 MoreOperating 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
| Process | Arrival | Burst |
|---|---|---|
| P1 | 0 | 6 |
| P2 | 1 | 3 |
| P3 | 2 | 8 |
| P4 | 3 | 4 |
