Replace all occurrences of pi with 3.14 in a given string

11 Jun, 2021
Given a string, the task is to replace all occurrences of pi with 3.14 in the given string.Examples:  
Input : str = "2 * pi + 3 * pi = 5 * pi"
Output : 2 * 3.14 + 3 * 3.14 = 5 * 3.14

Input : str = "pippppiiiipi"
Output : 3.14ppp3.14iii3.14

Input : str = "xpix"
Output : x3.14x
 
Approach 1:  
Create an empty output string.Traverse the string from the 0th index till second last index since length of pi is 2. If the alphabets at the current and (current+1)th index form the word “pi”, append “3.14” to the output string. Else append the alphabet at the current index.  
Create an empty output string.
Traverse the string from the 0th index till second last index since length of pi is 2. 
If the alphabets at the current and (current+1)th index form the word “pi”, append “3.14” to the output string. 
Else append the alphabet at the current index.  
Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ program to replace all// pi in a given string with 3.14 #include <bits/stdc++.h>using namespace std; // Function to replace all occurrences// of pi in a given with 3.14string replacePi(string input){    string output;     int size = input.length();     // Iterate through second last    // element of the string    for (int i = 0; i < size; ++i) {         // If current and current +1 alphabets        // form the word 'pi'        // append 3.14 to output        if (i + 1 < size and input[i] == 'p' and input[i + 1] == 'i') {            output += "3.14";            i++;        }         // Append the current letter        else {            output += input[i];        }    }     // Return the output string    return output;} // Driver Codeint main(){    string input = "2 * pi + 3 * pi = 5 * pi";    cout << replacePi(input);    return 0;}
// Java program to replace all// pi in a given String with 3.14 class GFG {     // Function to replace all occurrences    // of pi in a given with 3.14    public String replacePi(String input)    {        String output = "";         int size = input.length();         // Iterate through second last        // element of the String        for (int i = 0; i < size; ++i) {            // If current and current +1 alphabets            // form the word 'pi'            // append 3.14 to output            if (i + 1 < size && input.charAt(i) == 'p' && input.charAt(i + 1) == 'i') {                output += "3.14";                i++;            }             // Append the current letter            else {                output += input.charAt(i);            }        }         // Return the output String        return output;    }     // Driver Code    public static void main(String args[])    {        GFG g = new GFG();        String input = "2 * pi + 3 * pi = 5 * pi";        System.out.println(g.replacePi(input));    }} // This code has been contributed by 29AjayKumar
# Python program to replace all# pi in a given string with 3.14 # Function to replace all occurrences# of pi in a given with 3.14def replacePi(input):    output ="";     size = len(input);     # Iterate through second last    # element of the string    for i in range(size):         # If current and current + 1 alphabets        # form the word 'pi'        # append 3.14 to output        if (i + 1 < size and input[i] == 'p' and                            input[i + 1] == 'i'):            output += "3.14";            i+= 1;         # Append the current letter        else:            output += input[i];    # Return the output string    return output; # Driver Codeinput = "2 * pi + 3 * pi = 5 * pi";print(replacePi(input)); # This code contributed by PrinciRaj1992
// C# program to replace all// pi in a given string with 3.14 using System;// Function to replace all occurrences// of pi in a given with 3.14class gfg {    public string replacePi(string input)    {        string output = "";         int size = input.Length;         // Iterate through second last        // element of the string        for (int i = 0; i < size; ++i) {            // If current and current +1 alphabets            // form the word 'pi'            // append 3.14 to output            if (i + 1 < size && input[i] == 'p' && input[i + 1] == 'i') {                output += "3.14";                i++;            }             // Append the current letter            else {                output += input[i];            }        }         // Return the output string        return output;    }} // Driver Codeclass geek {    public static int Main()    {        gfg g = new gfg();        string input = "2 * pi + 3 * pi = 5 * pi";        Console.WriteLine(g.replacePi(input));        return 0;    }}// This code is contributed by Soumik
<script>       // JavaScript program to replace all      // pi in a given string with 3.14             // Function to replace all occurrences      // of pi in a given with 3.14      function replacePi(input) {        var output = "";         var size = input.length;         // Iterate through second last        // element of the string        for (var i = 0; i < size; ++i) {          // If current and current +1 alphabets          // form the word 'pi'          // append 3.14 to output          if (i + 1 < size && input[i] === "p"          && input[i + 1] === "i")          {            output += "3.14";            i++;          }           // Append the current letter          else {            output += input[i];          }        }         // Return the output string        return output;      }       // Driver Code      var input = "2 * pi + 3 * pi = 5 * pi";      document.write(replacePi(input));       </script>
2 * 3.14 + 3 * 3.14 = 5 * 3.14
 
Time Complexity: O(N), where N is the length of the given string.Approach 2: (In Java) To replace all the PI occurrences to 3.14, use replaceAll() method of Java String Class. 
Java
public class ReplacePI {    public static void main(String[] args)    {        // Declare a String        String expression = "2 * pi + 3 * pi = 5 * pi";         // Call replaceAll() method to replace PI to 3.14        expression = expression.replaceAll("pi", "3.14");         // Print the result        System.out.println(expression);    }}
2 * 3.14 + 3 * 3.14 = 5 * 3.14
 
bilal-hungund
SoumikMondal
neverSettle
29AjayKumar
princiraj1992
rdtank
Technical Scripter 2018
Searching
Strings
Technical Scripter
Searching
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.