Рубрики

Поменять местами каждое слово строки, кроме первого и последнего символа

Для заданной строки str, состоящей из предложения, задача состоит в том, чтобы перевернуть каждое слово предложения, кроме первого и последнего символа слов.

Примеры:

Input: str = “geeks for geeks”
Output: gkees for gkees

Input: str = “this is a string”
Output: tihs is a snirtg

Подход: разбить строку на слова с помощью strtok () , теперь для каждого слова возьмем два указателя i и j, указывающие на второй и второй последний символ строки соответственно. Поменяйте местами эти символы, затем увеличьте i и уменьшите j . Повторите эти шаги, пока я <J .

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ реализация подхода
#include <bits/stdc++.h>

using namespace std;

  
// Функция для обратного заданного слова, кроме
// первый и последний символ
string reverseWord(string str)
{

    int len = str.length();

  

    // Указатель на второй символ

    // строки

    int i = 1;

  

    // Указатель на второй последний

    // символ строки

    int j = str.length() - 2;

    while (i < j) {

  

        // Меняем местами str [i] и str [j]

        char temp = str[i];

        str[i] = str[j];

        str[j] = temp;

        i++;

        j--;

    }

  

    return str;

}

  
// Функция, которая переворачивает каждое слово
// предложение, кроме первого и
// последний символ слова

void reverseWords(char str[])

{

    char* tok = strtok(str, " ");

  

    // пока остались слова

    while (tok != NULL) {

  

        // Распечатать перевернутое слово

        cout << reverseWord(tok) << " ";

  

        // Получить следующее слово

        tok = strtok(NULL, " ");

    }

}

  
// Код драйвера

int main()

{

    char str[] = "geeks for geeks";

    reverseWords(str);

  

    return 0;

}

Джава

// Java реализация вышеуказанного подхода

class GFG 

{

      
// Функция для обратного заданного слова, кроме
// первый и последний символ

static String reverseWord(String str) 

    int len = str.length(); 

      

    // Указатель на второй символ

    // строки

    int i = 1

  

    // Указатель на второй последний

    // символ строки

    int j = str.length() - 2

      

    char[] strchar = str.toCharArray();

  

    while (i < j)

    

  

        // Меняем местами str [i] и str [j]

        char temp = strchar[i]; 

        strchar[i] = strchar[j]; 

        strchar[j] = temp; 

        i++; 

        j--; 

    

      

    str = new String(strchar);

    return str; 

  
// Функция, которая переворачивает каждое слово
// предложение, кроме первого и
// последний символ слова

static void reverseWords(String str) 

    String[] tok = str.split("\\s"); 

  

    // пока остались слова

    for(String w:tok) 

    

  

        // Распечатать перевернутое слово

        System.out.print(reverseWord(w) + " "); 

    

  
// Код драйвера

public static void main (String[] args) 

    String str = "geeks for geeks"

    reverseWords(str); 


}

      
// Этот код предоставлен AnkitRai01

python3

# Python3 реализация подхода

  
# Функция для изменения заданного слова, кроме
# первый и последний символ

def reverseWord(Str):

      

    # len = len (Str)

  

    # Указатель на второй символ

    # строки

    i = 1

  

    # Указатель на второй последний

    # символ строки

    j = len(Str) - 2

    while (i < j):

  

        # Поменяйте местами Str [i] и Str [j]

        temp = Str[i]

        Str[i] = Str[j]

        Str[j] = temp

        i += 1

        j -= 1

  

    return "".join(Str)

  
# Функция, чтобы инвертировать каждое слово
# предложение, кроме первого и
# последний символ слова

def reverseWords(Str):

    Str = Str.split()

  

    # Пока остались слова

    for i in Str:

  

        # Распечатать перевернутое слово

        j = [h for h in i]

        print(reverseWord(j), end = " ")

  
# Код драйвера

Str= "geeks for geeks"

reverseWords(Str)

  
# Этот код предоставлен Мохитом Кумаром

C #

// C # реализация вышеуказанного подхода

using System;

      

class GFG 

{

      
// Функция для обратного заданного слова, кроме
// первый и последний символ

static String reverseWord(String str) 

    int len = str.Length; 

      

    // Указатель на второй символ

    // строки

    int i = 1; 

  

    // Указатель на второй последний

    // символ строки

    int j = str.Length - 2; 

      

    char[] strchar = str.ToCharArray();

  

    while (i < j)

    

  

        // Меняем местами str [i] и str [j]

        char temp = strchar[i]; 

        strchar[i] = strchar[j]; 

        strchar[j] = temp; 

        i++; 

        j--; 

    

    str = new String(strchar);

    return str; 

  
// Функция, которая переворачивает каждое слово
// предложение, кроме первого и
// последний символ слова

static void reverseWords(String str) 

    String[] tok = str.Split(' '); 

  

    // пока остались слова

    foreach(String w in tok) 

    

  

        // Распечатать перевернутое слово

        Console.Write(reverseWord(w) + " "); 

    

  
// Код драйвера

public static void Main (String[] args) 

    String str = "geeks for geeks"

    reverseWords(str); 


}

  
// Этот код предоставлен 29AjayKumar

Выход:

gkees for gkees

Рекомендуемые посты:

Поменять местами каждое слово строки, кроме первого и последнего символа

0.00 (0%) 0 votes