PlacementPrep

Sap Placement Papers 2026

47 min read
Company Placement Papers
Advertisement Placement

SAP Placement Papers 2026 - Complete Preparation Guide

Last Updated: March 2026


šŸ“‹ Company Overview

AttributeDetails
CompanySAP SE (Systems, Applications & Products in Data Processing)
IndustryEnterprise Software, Cloud Computing
HeadquartersWalldorf, Germany
Founded1972 (by five former IBM employees)
ProductsSAP ERP, SAP S/4HANA, SAP SuccessFactors, SAP Ariba
Employees100,000+ globally
Market PositionWorld's largest ERP software company

SAP is a German multinational software corporation that makes enterprise software to manage business operations and customer relations. SAP is best known for its ERP (Enterprise Resource Planning) software, which helps companies manage their business processes. The company is transitioning to cloud-based solutions with SAP S/4HANA and expanding into experience management.


šŸŽ“ Eligibility Criteria (2026 Batch)

CriteriaRequirement
DegreeB.Tech/B.E., M.Tech, MCA, MBA (Systems), B.Sc/M.Sc (CS)
BranchesCSE, IT, ECE, EEE, Mechanical, Civil (for specific roles)
CGPA7.0+ (or 70% and above)
BacklogsNo active backlogs at time of recruitment
Year of Passing2026
Additional SkillsABAP, Java, JavaScript, SQL (beneficial but not mandatory)

šŸ’° CTC for Freshers 2026

ComponentAmount (Approximate)
Base Salary₹8-12 LPA
Joining Bonus₹50,000 - 1,00,000
Relocation₹50,000 - 75,000
BenefitsHealth insurance, wellness programs
Variable Pay10-15% of base salary
Total CTC (First Year)₹10-16 LPA

Role-based packages:

  • Developer Associate: ₹10-14 LPA
  • Technology Consultant: ₹12-16 LPA
  • Support Engineer: ₹8-12 LPA

šŸ“ Exam Pattern

RoundDurationFormatTopics
Online Assessment90-120 minsAptitude + Technical + CodingQuant, Verbal, Reasoning, CS Fundamentals
Technical Interview 145-60 minsCoding + Problem SolvingDSA, Algorithms
Technical Interview 245-60 minsTechnical + DomainDBMS, OOPs, Projects
Managerial Round30-45 minsBehavioral + Case StudyProblem-solving, Communication
HR Interview30 minsHR DiscussionCulture fit, Expectations

Online Assessment Structure:

SectionQuestionsDurationTopics
Aptitude20-2525 minsQuantitative, Logical, Verbal
Technical MCQ15-2020 minsDBMS, OOPs, OS, Networks
Coding2-345-60 minsData Structures, Algorithms
Essay Writing115 minsBusiness/Technology topic

🧮 Aptitude Questions (15 Questions with Solutions)

Question 1: Percentages

A number is first increased by 10% and then decreased by 10%. What is the net change?

Options:

  • (a) 1% increase
  • (b) 1% decrease
  • (c) No change
  • (d) 2% decrease

Solution: Let original = 100 After 10% increase: 110 After 10% decrease: 110 Ɨ 0.90 = 99

Net change = 100 - 99 = 1% decrease

Formula: Net % = a + b + ab/100 = 10 - 10 + (10Ɨ-10)/100 = -1%


Question 2: Time and Work

A and B can complete a work in 12 days. B and C can complete it in 15 days. C and A can complete it in 20 days. How long will A, B, and C take together?

Options:

  • (a) 8 days
  • (b) 9 days
  • (c) 10 days
  • (d) 12 days

Solution: A + B = 1/12 per day B + C = 1/15 per day C + A = 1/20 per day

Adding all three: 2(A + B + C) = 1/12 + 1/15 + 1/20 = (5 + 4 + 3)/60 = 12/60 = 1/5

A + B + C = 1/10 per day

Time taken together = 10 days


Question 3: Number Series

Find the next term: 0, 1, 1, 2, 3, 5, 8, 13, ?

Options:

  • (a) 19
  • (b) 20
  • (c) 21
  • (d) 22

Solution: Fibonacci series: Each number is the sum of two preceding ones. 0 + 1 = 1 1 + 1 = 2 1 + 2 = 3 2 + 3 = 5 3 + 5 = 8 5 + 8 = 13 8 + 13 = 21


Question 4: Profit and Loss

By selling 36 oranges, a vendor loses the selling price of 4 oranges. What is his loss percentage?

Options:

  • (a) 10%
  • (b) 11.11%
  • (c) 12.5%
  • (d) 15%

Solution: Let SP of 1 orange = ₹1 SP of 36 oranges = ₹36 Loss = SP of 4 oranges = ₹4

CP = SP + Loss = 36 + 4 = ₹40

Loss % = (4/40) Ɨ 100 = 10%


Question 5: Probability

Two dice are thrown. What is the probability of getting a sum greater than 9?

Options:

  • (a) 1/6
  • (b) 1/9
  • (c) 1/12
  • (d) 5/18

Solution: Total outcomes = 36

Sum > 9 means sum = 10, 11, or 12

  • Sum = 10: (4,6), (5,5), (6,4) = 3 ways
  • Sum = 11: (5,6), (6,5) = 2 ways
  • Sum = 12: (6,6) = 1 way

Favorable = 6 Probability = 6/36 = 1/6


Question 6: Ratio and Proportion

The ratio of ages of A and B is 4:5. After 6 years, the ratio becomes 6:7. What is the present age of A?

Options:

  • (a) 12 years
  • (b) 18 years
  • (c) 24 years
  • (d) 30 years

Solution: Let present ages = 4x and 5x

(4x + 6)/(5x + 6) = 6/7

Cross multiply: 7(4x + 6) = 6(5x + 6) 28x + 42 = 30x + 36 42 - 36 = 30x - 28x 6 = 2x x = 3

A's present age = 4x = 12 years


Question 7: Simple Interest

A sum of money becomes 3 times itself in 8 years at simple interest. In how many years will it become 5 times itself?

Options:

  • (a) 12 years
  • (b) 14 years
  • (c) 16 years
  • (d) 20 years

Solution: Amount = 3P, so SI = 2P in 8 years

Rate = (SI Ɨ 100)/(P Ɨ T) = (2P Ɨ 100)/(P Ɨ 8) = 25%

For amount to become 5P: SI needed = 4P Time = (4P Ɨ 100)/(P Ɨ 25) = 16 years


Question 8: Data Interpretation

The table shows sales (in thousands) of a company:

Quarter20232024
Q1120140
Q2150180
Q3130160
Q4200220

What is the percentage growth in total sales from 2023 to 2024?

Options:

  • (a) 15%
  • (b) 16.67%
  • (c) 18%
  • (d) 20%

Solution: Total 2023 = 120 + 150 + 130 + 200 = 600 Total 2024 = 140 + 180 + 160 + 220 = 700

Growth = (700 - 600)/600 Ɨ 100 = 100/600 Ɨ 100 = 16.67%


Question 9: Permutations

How many ways can the letters of the word 'LEADING' be arranged such that the vowels are always together?

Options:

  • (a) 480
  • (b) 576
  • (c) 720
  • (d) 840

Solution: Vowels: E, A, I (3) Consonants: L, D, N, G (4)

Treat vowels as one unit: 5 units total Arrangements = 5! Ɨ 3! = 120 Ɨ 6 = 720


Question 10: Time and Distance

A car travels at 60 km/hr and reaches its destination in 4 hours. What speed should it travel to cover the same distance in 3 hours?

Options:

  • (a) 70 km/hr
  • (b) 75 km/hr
  • (c) 80 km/hr
  • (d) 85 km/hr

Solution: Distance = 60 Ɨ 4 = 240 km Required speed = 240/3 = 80 km/hr


Question 11: Partnership

A and B start a business with ₹45,000 and ₹30,000 respectively. After 6 months, C joins with ₹60,000. If the total profit after one year is ₹18,000, what is C's share?

Options:

  • (a) ₹4,000
  • (b) ₹5,000
  • (c) ₹6,000
  • (d) ₹7,000

Solution: Investment periods:

  • A: 12 months Ɨ ₹45,000 = 5,40,000
  • B: 12 months Ɨ ₹30,000 = 3,60,000
  • C: 6 months Ɨ ₹60,000 = 3,60,000

Ratio A:B:C = 540:360:360 = 3:2:2

C's share = (2/7) Ɨ 18000 = ₹5,142

Given options, closest is (b) ₹5,000


Question 12: Calendar

What was the day on 15th August 1947 (Independence Day)?

Options:

  • (a) Wednesday
  • (b) Thursday
  • (c) Friday
  • (d) Saturday

Solution: Using odd day method:

  • 1600 years: 0 odd days
  • 300 years: 1 odd day
  • 46 years: 35 ordinary + 11 leap = 35 + 22 = 57 = 1 odd day
  • Days till Aug 15, 1947: 31+28+31+30+31+30+31+15 = 227 = 3 odd days

Total = 0 + 1 + 1 + 3 = 5 odd days = Friday


Question 13: Boats and Streams

A boat covers 24 km upstream in 6 hours. If the speed of the stream is 2 km/hr, what is the speed of the boat in still water?

Options:

  • (a) 4 km/hr
  • (b) 5 km/hr
  • (c) 6 km/hr
  • (d) 8 km/hr

Solution: Upstream speed = 24/6 = 4 km/hr B - S = 4 B - 2 = 4 B = 6 km/hr


Question 14: Logical Reasoning

All pens are books. Some books are pencils. Which conclusion follows?

I. Some pens are pencils. II. Some pencils are pens.

Options:

  • (a) Only I
  • (b) Only II
  • (c) Both
  • (d) Neither

Solution: Using Venn diagrams:

  • Pens āŠ‚ Books
  • Pencils ∩ Books ≠ āˆ…

There is no definite overlap between Pens and Pencils. Neither conclusion necessarily follows.


Question 15: Coding-Decoding

If MOUSE is coded as PRXUH, how is KEYBOARD coded?

Options:

  • (a) NHBRDUG
  • (b) NHBAREUG
  • (c) NHBRDUF
  • (d) NIBRDUG

Solution: M → P (+3) O → R (+3) U → X (+3) S → U (+2) E → H (+3)

Pattern mostly +3, with S→U being +2 (possibly vowel/consonant difference)

Applying +3 to KEYBOARD: K → N E → H Y → B B → E O → R A → D R → U D → G

Result: NHB R DUG → (a) NHBRDUG


šŸ’» Technical/CS Questions (10 Questions with Solutions)

Question 1: Data Structures

Which sorting algorithm has the worst-case time complexity of O(n²)?

Options:

  • (a) Merge Sort
  • (b) Heap Sort
  • (c) Quick Sort
  • (d) None

Solution: Quick Sort has O(n²) worst-case time complexity when the pivot selection is poor (e.g., always picking first/last element in a sorted array). Merge Sort and Heap Sort guarantee O(n log n).


Question 2: Database

Which SQL clause is used to group rows that have the same values?

Options:

  • (a) ORDER BY
  • (b) GROUP BY
  • (c) HAVING
  • (d) WHERE

Solution: GROUP BY groups rows with the same values in specified columns into summary rows, often used with aggregate functions (COUNT, SUM, AVG, etc.).


Question 3: Operating Systems

What is virtual memory?

Options:

  • (a) Physical RAM
  • (b) Hard disk space used as RAM
  • (c) Cache memory
  • (d) Register memory

Solution: Virtual memory is a memory management technique that uses secondary storage (hard disk) as an extension of RAM, allowing programs to use more memory than physically available.


Question 4: OOP

Which principle of OOP hides the internal implementation details?

Options:

  • (a) Inheritance
  • (b) Polymorphism
  • (c) Encapsulation
  • (d) Abstraction

Solution: Encapsulation bundles data and methods together and restricts direct access to some components, hiding internal implementation details from the outside world.


Question 5: Networks

Which protocol is used to send emails?

Options:

  • (a) HTTP
  • (b) FTP
  • (c) SMTP
  • (d) POP3

Solution: SMTP (Simple Mail Transfer Protocol) is used for sending emails. POP3 and IMAP are for receiving emails.


Question 6: Algorithms

Which data structure is used for Breadth First Search (BFS)?

Options:

  • (a) Stack
  • (b) Queue
  • (c) Priority Queue
  • (d) Tree

Solution: BFS uses a Queue to explore nodes level by level, processing all neighbors before moving to the next level.


Question 7: DBMS

Which key uniquely identifies a record in a table?

Options:

  • (a) Foreign Key
  • (b) Primary Key
  • (c) Candidate Key
  • (d) Alternate Key

Solution: A Primary Key uniquely identifies each record in a table and cannot contain NULL values.


Question 8: Java

What is the default value of an int variable in Java?

Options:

  • (a) 0
  • (b) 1
  • (c) null
  • (d) undefined

Solution: In Java, instance variables of type int are initialized to 0 by default if not explicitly initialized.


Question 9: Computer Architecture

What does CPU stand for?

Options:

  • (a) Central Processing Unit
  • (b) Computer Personal Unit
  • (c) Central Processor Unit
  • (d) Central Program Unit

Solution: CPU = Central Processing Unit, the primary component of a computer that performs most of the processing.


Question 10: Web Development

Which HTML tag is used to define an internal stylesheet?

Options:

  • (a) <css>
  • (b) <script>
  • (c) <style>
  • (d) <link>

Solution: The <style> tag is used to define internal CSS styles within an HTML document.


šŸ“š Verbal/English Questions (10 Questions with Solutions)

Question 1: Synonyms

Nearest meaning to "INNOVATIVE":

Options:

  • (a) Traditional
  • (b) Creative/Original
  • (c) Boring
  • (d) Old-fashioned

Solution: Innovative means introducing new ideas, methods, or products; creative and original.


Question 2: Antonyms

Opposite of "TRANSPARENT":

Options:

  • (a) Clear
  • (b) Opaque
  • (c) Visible
  • (d) Apparent

Solution: Transparent means allowing light to pass through so that objects behind can be seen distinctly. Opaque means not transparent.


Question 3: Error Spotting

"The team are working on the new project."

Options:

  • (a) The team
  • (b) are working
  • (c) on the new project
  • (d) No error

Solution: "Team" is a collective noun and takes singular verb in formal English. Should be "is working."


Question 4: Fill in Blanks

"Enterprise software ______ businesses to streamline their operations."

Options:

  • (a) prevents
  • (b) enables
  • (c) stops
  • (d) blocks

Solution: Enterprise software enables/allows businesses to improve their processes.


Question 5: Comprehension

"Digital transformation has become essential for businesses to remain competitive. By adopting cloud technologies and automation, companies can reduce costs, improve efficiency, and enhance customer experiences."

What is the main benefit of digital transformation mentioned?

Options:

  • (a) Reducing employee count
  • (b) Competitive advantage through efficiency and customer focus
  • (c) Increasing product prices
  • (d) Eliminating competition

Solution: The passage emphasizes remaining competitive through cost reduction, efficiency improvement, and enhanced customer experience.


Question 6: Analogy

"Cloud" is to "Storage" as "Application" is to:

Options:

  • (a) Software
  • (b) Functionality
  • (c) Hardware
  • (d) Data

Solution: Cloud provides storage services. An application provides functionality/services.


Question 7: Idioms

"To think outside the box" means:

Options:

  • (a) To think literally
  • (b) To think creatively and innovatively
  • (c) To think negatively
  • (d) To avoid thinking

Solution: This idiom means to think differently, unconventionally, or from a new perspective.


Question 8: Sentence Improvement

"Neither of the solutions are satisfactory."

Options:

  • (a) Neither of the solutions
  • (b) are satisfactory
  • (c) No improvement needed
  • (d) None

Solution: "Neither" takes singular verb. Should be "is satisfactory."


Question 9: Word Substitution

A person who develops software:

Options:

  • (a) User
  • (b) Developer/Programmer
  • (c) Customer
  • (d) Manager

Solution: A software developer or programmer creates computer software.


Question 10: Rearrangement

Arrange: P: Enterprise Resource Planning systems Q: Have revolutionized R: How large organizations operate S: By integrating business processes

Options:

  • (a) PQRS
  • (b) PQSR
  • (c) PRQS
  • (d) PSQR

Solution: "Enterprise Resource Planning systems have revolutionized how large organizations operate by integrating business processes."


šŸ–„ļø Coding Questions (5 Questions with Python Solutions)

Question 1: ERP Data Processing - Employee Salary Analysis

Problem: Given a list of employee records with their departments and salaries, calculate:

  1. Average salary per department
  2. Highest paid employee in each department
  3. Department with highest average salary

Python Solution:

def analyze_salaries(employees):
    """
    employees: list of dicts with 'name', 'dept', 'salary'
    """
    from collections import defaultdict
    
    dept_data = defaultdict(lambda: {'salaries': [], 'employees': []})
    
    # Aggregate data
    for emp in employees:
        dept = emp['dept']
        dept_data[dept]['salaries'].append(emp['salary'])
        dept_data[dept]['employees'].append(emp)
    
    results = {}
    
    for dept, data in dept_data.items():
        salaries = data['salaries']
        emp_list = data['employees']
        
        avg_salary = sum(salaries) / len(salaries)
        max_salary = max(salaries)
        highest_paid = max(emp_list, key=lambda x: x['salary'])
        
        results[dept] = {
            'average': round(avg_salary, 2),
            'highest_paid': highest_paid['name'],
            'max_salary': max_salary,
            'employee_count': len(salaries)
        }
    
    # Find dept with highest average
    top_dept = max(results.items(), key=lambda x: x[1]['average'])
    
    return results, top_dept[0]

# Test data
employees = [
    {'name': 'Alice', 'dept': 'IT', 'salary': 80000},
    {'name': 'Bob', 'dept': 'HR', 'salary': 60000},
    {'name': 'Charlie', 'dept': 'IT', 'salary': 90000},
    {'name': 'David', 'dept': 'Sales', 'salary': 75000},
    {'name': 'Eve', 'dept': 'HR', 'salary': 65000},
    {'name': 'Frank', 'dept': 'Sales', 'salary': 85000},
    {'name': 'Grace', 'dept': 'IT', 'salary': 95000},
]

results, top_dept = analyze_salaries(employees)
print("Department Analysis:")
for dept, data in results.items():
    print(f"{dept}: {data}")
print(f"\nDepartment with highest average: {top_dept}")

Question 2: Inventory Management System

Problem: Design an inventory management system with the following operations:

  1. Add product with quantity
  2. Remove/Update quantity
  3. Check stock level
  4. Get low stock alerts (below threshold)

Python Solution:

class InventoryManager:
    def __init__(self):
        self.inventory = {}  # product_id -> {name, quantity, threshold}
    
    def add_product(self, product_id, name, quantity, threshold=10):
        """Add or update a product"""
        self.inventory[product_id] = {
            'name': name,
            'quantity': quantity,
            'threshold': threshold
        }
        print(f"Added: {name} (Qty: {quantity})")
    
    def update_quantity(self, product_id, quantity_change):
        """Update quantity (positive for add, negative for remove)"""
        if product_id not in self.inventory:
            print(f"Product {product_id} not found!")
            return False
        
        new_qty = self.inventory[product_id]['quantity'] + quantity_change
        
        if new_qty < 0:
            print(f"Insufficient stock! Current: {self.inventory[product_id]['quantity']}")
            return False
        
        self.inventory[product_id]['quantity'] = new_qty
        print(f"Updated {self.inventory[product_id]['name']}: {new_qty}")
        
        if new_qty <= self.inventory[product_id]['threshold']:
            print(f"ALERT: {self.inventory[product_id]['name']} is running low!")
        
        return True
    
    def check_stock(self, product_id):
        """Check current stock level"""
        if product_id in self.inventory:
            return self.inventory[product_id]['quantity']
        return None
    
    def get_low_stock(self):
        """Get all products below threshold"""
        low_stock = []
        for pid, data in self.inventory.items():
            if data['quantity'] <= data['threshold']:
                low_stock.append({
                    'id': pid,
                    'name': data['name'],
                    'quantity': data['quantity'],
                    'threshold': data['threshold']
                })
        return low_stock
    
    def get_inventory_value(self, prices):
        """Calculate total inventory value given price dict"""
        total = 0
        for pid, data in self.inventory.items():
            if pid in prices:
                total += data['quantity'] * prices[pid]
        return total
    
    def display_inventory(self):
        """Display all inventory items"""
        print("\n=== Current Inventory ===")
        for pid, data in self.inventory.items():
            status = "LOW" if data['quantity'] <= data['threshold'] else "OK"
            print(f"{pid}: {data['name']} | Qty: {data['quantity']} | Status: {status}")

# Test
inventory = InventoryManager()

# Add products
inventory.add_product("P001", "Laptop", 50, threshold=10)
inventory.add_product("P002", "Mouse", 200, threshold=20)
inventory.add_product("P003", "Keyboard", 15, threshold=15)

# Display
inventory.display_inventory()

# Update quantities
inventory.update_quantity("P001", -45)  # Sell 45 laptops - should trigger low stock
inventory.update_quantity("P002", -30)  # Sell 30 mice

# Check low stock
print("\n=== Low Stock Items ===")
for item in inventory.get_low_stock():
    print(f"{item['name']}: {item['quantity']} (Threshold: {item['threshold']})")

Question 3: Binary Tree - Level Order Traversal

Problem: Given the root of a binary tree, return the level order traversal of its nodes' values (from left to right, level by level).

Example:

Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]

Python Solution:

from collections import deque

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def level_order(root):
    """
    BFS approach
    Time: O(n), Space: O(n)
    """
    if not root:
        return []
    
    result = []
    queue = deque([root])
    
    while queue:
        level_size = len(queue)
        level_nodes = []
        
        for _ in range(level_size):
            node = queue.popleft()
            level_nodes.append(node.val)
            
            if node.left:
                queue.append(node.left)
            if node.right:
                queue.append(node.right)
        
        result.append(level_nodes)
    
    return result

def level_order_dfs(root):
    """
    DFS approach
    Time: O(n), Space: O(h) for recursion
    """
    result = []
    
    def dfs(node, level):
        if not node:
            return
        
        if level == len(result):
            result.append([])
        
        result[level].append(node.val)
        dfs(node.left, level + 1)
        dfs(node.right, level + 1)
    
    dfs(root, 0)
    return result

def zigzag_level_order(root):
    """
    Zigzag (spiral) traversal
    """
    if not root:
        return []
    
    result = []
    queue = deque([root])
    left_to_right = True
    
    while queue:
        level_size = len(queue)
        level_nodes = deque()
        
        for _ in range(level_size):
            node = queue.popleft()
            
            if left_to_right:
                level_nodes.append(node.val)
            else:
                level_nodes.appendleft(node.val)
            
            if node.left:
                queue.append(node.left)
            if node.right:
                queue.append(node.right)
        
        result.append(list(level_nodes))
        left_to_right = not left_to_right
    
    return result

# Test
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)

print("Level Order:", level_order(root))  # [[3], [9, 20], [15, 7]]
print("Zigzag Order:", zigzag_level_order(root))  # [[3], [20, 9], [15, 7]]

Question 4: String Matching - KMP Algorithm

Problem: Implement the Knuth-Morris-Pratt (KMP) algorithm for pattern matching in strings.

Example:

Text: "ABABDABACDABABCABAB"
Pattern: "ABABCABAB"
Output: Pattern found at index 10

Python Solution:

def compute_lps(pattern):
    """
    Compute Longest Proper Prefix which is also Suffix
    Time: O(m) where m is pattern length
    """
    m = len(pattern)
    lps = [0] * m
    length = 0  # Length of previous longest prefix suffix
    i = 1
    
    while i < m:
        if pattern[i] == pattern[length]:
            length += 1
            lps[i] = length
            i += 1
        else:
            if length != 0:
                # Fall back to previous longest prefix suffix
                length = lps[length - 1]
            else:
                lps[i] = 0
                i += 1
    
    return lps

def kmp_search(text, pattern):
    """
    KMP Pattern Matching
    Time: O(n + m), Space: O(m)
    """
    n = len(text)
    m = len(pattern)
    
    if m == 0:
        return 0
    if m > n:
        return -1
    
    lps = compute_lps(pattern)
    
    i = 0  # Index for text
    j = 0  # Index for pattern
    
    while i < n:
        if text[i] == pattern[j]:
            i += 1
            j += 1
            
            if j == m:
                return i - j  # Pattern found at index i-j
        else:
            if j != 0:
                j = lps[j - 1]
            else:
                i += 1
    
    return -1  # Pattern not found

def kmp_find_all(text, pattern):
    """Find all occurrences of pattern in text"""
    positions = []
    n = len(text)
    m = len(pattern)
    
    if m == 0 or m > n:
        return positions
    
    lps = compute_lps(pattern)
    i = j = 0
    
    while i < n:
        if text[i] == pattern[j]:
            i += 1
            j += 1
            
            if j == m:
                positions.append(i - j)
                j = lps[j - 1]  # Continue searching
        else:
            if j != 0:
                j = lps[j - 1]
            else:
                i += 1
    
    return positions

# Test
text = "ABABDABACDABABCABAB"
pattern = "ABABCABAB"

print(f"Text: {text}")
print(f"Pattern: {pattern}")
print(f"Pattern found at index: {kmp_search(text, pattern)}")

# Test with multiple occurrences
text2 = "AABAACAADAABAABA"
pattern2 = "AABA"
print(f"\nAll occurrences of '{pattern2}': {kmp_find_all(text2, pattern2)}")

# LPS computation example
pattern3 = "AAACAAAA"
print(f"\nLPS array for '{pattern3}': {compute_lps(pattern3)}")

Question 5: Graph - Shortest Path (Dijkstra's Algorithm)

Problem: Find the shortest path from a source node to all other nodes in a weighted graph using Dijkstra's algorithm.

Python Solution:

import heapq
from collections import defaultdict

def dijkstra(graph, source):
    """
    Dijkstra's Algorithm for shortest paths
    
    graph: dict where graph[u] = [(v, weight), ...]
    Time: O((V + E) log V) with heap
    Space: O(V)
    """
    # Initialize distances
    distances = {node: float('infinity') for node in graph}
    distances[source] = 0
    
    # Priority queue: (distance, node)
    pq = [(0, source)]
    
    # Track visited nodes
    visited = set()
    
    # Track path
    parent = {source: None}
    
    while pq:
        current_dist, current = heapq.heappop(pq)
        
        # Skip if already processed
        if current in visited:
            continue
        
        visited.add(current)
        
        # Check all neighbors
        for neighbor, weight in graph[current]:
            if neighbor in visited:
                continue
            
            new_dist = current_dist + weight
            
            if new_dist < distances[neighbor]:
                distances[neighbor] = new_dist
                parent[neighbor] = current
                heapq.heappush(pq, (new_dist, neighbor))
    
    return distances, parent

def get_path(parent, target):
    """Reconstruct path from source to target"""
    path = []
    current = target
    
    while current is not None:
        path.append(current)
        current = parent.get(current)
    
    return path[::-1]  # Reverse to get source to target

def dijkstra_matrix(adj_matrix, source):
    """
    Dijkstra with adjacency matrix
    """
    n = len(adj_matrix)
    distances = [float('infinity')] * n
    distances[source] = 0
    visited = [False] * n
    
    for _ in range(n):
        # Find minimum distance vertex
        min_dist = float('infinity')
        min_idx = -1
        
        for i in range(n):
            if not visited[i] and distances[i] < min_dist:
                min_dist = distances[i]
                min_idx = i
        
        if min_idx == -1:
            break
        
        visited[min_idx] = True
        
        # Update distances to neighbors
        for v in range(n):
            if (not visited[v] and 
                adj_matrix[min_idx][v] != 0 and 
                distances[min_idx] + adj_matrix[min_idx][v] < distances[v]):
                distances[v] = distances[min_idx] + adj_matrix[min_idx][v]
    
    return distances

# Test with adjacency list
graph = {
    'A': [('B', 4), ('C', 2)],
    'B': [('A', 4), ('C', 1), ('D', 5)],
    'C': [('A', 2), ('B', 1), ('D', 8), ('E', 10)],
    'D': [('B', 5), ('C', 8), ('E', 2), ('F', 6)],
    'E': [('C', 10), ('D', 2), ('F', 3)],
    'F': [('D', 6), ('E', 3)]
}

print("=== Dijkstra's Algorithm ===")
distances, parent = dijkstra(graph, 'A')

print(f"\nShortest distances from A:")
for node, dist in sorted(distances.items()):
    path = get_path(parent, node)
    print(f"To {node}: Distance = {dist}, Path = {' -> '.join(path)}")

# Test with adjacency matrix
adj_matrix = [
    [0, 4, 2, 0, 0, 0],
    [4, 0, 1, 5, 0, 0],
    [2, 1, 0, 8, 10, 0],
    [0, 5, 8, 0, 2, 6],
    [0, 0, 10, 2, 0, 3],
    [0, 0, 0, 6, 3, 0]
]

print("\n=== Using Adjacency Matrix ===")
distances_matrix = dijkstra_matrix(adj_matrix, 0)
print(f"Distances from node 0: {distances_matrix}")

šŸ’” Interview Tips

1. Understand ERP and Business Processes

SAP is an ERP company. Research what ERP systems do - finance, HR, supply chain, manufacturing. Understanding business processes shows you can bridge technology and business.

2. Learn About SAP's Product Portfolio

Research SAP S/4HANA, SAP SuccessFactors, SAP Ariba, SAP Customer Experience, and SAP Business Technology Platform. Knowing their cloud strategy is crucial.

3. Focus on Data Structures and Algorithms

SAP's technical interviews focus heavily on DSA. Be comfortable with arrays, trees, graphs, and dynamic programming. Practice coding on paper or whiteboard.

4. Prepare for Case Studies

SAP interviews often include business case studies. Practice analyzing problems from both technical and business perspectives. Think about scalability and integration.

5. Show Interest in Enterprise Software

SAP values candidates interested in enterprise applications. Express curiosity about how large organizations operate and how software can improve business efficiency.

6. Practice English and Communication

SAP is a German company with global operations. Clear communication is essential. Practice explaining technical concepts simply and professionally.

7. Know Your Projects Thoroughly

Be ready to discuss your academic projects in detail. Explain your role, challenges faced, and how you solved them. Use the STAR method for structured responses.


ā“ Frequently Asked Questions

Q1: What is SAP's main business?

A: SAP is the world's leading enterprise software company, primarily known for its ERP (Enterprise Resource Planning) systems. Their software helps organizations manage business operations including finance, HR, manufacturing, supply chain, and customer relations.

Q2: What is SAP S/4HANA?

A: SAP S/4HANA is SAP's next-generation ERP suite built on the SAP HANA in-memory database. It offers real-time analytics, simplified data models, and modern user experiences through SAP Fiori. It represents SAP's transition to cloud-based ERP.

Q3: Does SAP require knowledge of ABAP for freshers?

A: Not necessarily. While ABAP is SAP's proprietary programming language, freshers can join without ABAP knowledge. SAP provides training. However, knowing Java, JavaScript, or SQL is beneficial for technical roles.

Q4: What is the work culture at SAP like?

A: SAP offers a collaborative, inclusive work culture with strong work-life balance. The company values diversity, innovation, and sustainability. SAP India has development centers in Bangalore, Pune, Gurgaon, and Mumbai.

Q5: How does SAP's package compare to other companies?

A: SAP offers competitive packages (₹10-16 LPA for freshers) with excellent benefits including health insurance, wellness programs, learning opportunities, and global exposure. While base pay may be lower than some product companies, the overall benefits and work-life balance are highly rated.


šŸ“– Additional Resources

  • SAP Official Website: www.sap.com for product information
  • SAP Learning Hub: For free and paid SAP courses
  • openSAP: Free online courses from SAP
  • LeetCode/HackerRank: For DSA practice
  • GeeksforGeeks SAP Interview Experiences
  • "Introduction to Algorithms" by CLRS

Best wishes for your SAP interview! šŸš€

Remember: SAP values candidates who can combine technical skills with business understanding. Show them you can think from both perspectives.

Advertisement Placement

Share this article: