पाठ इनवर्टर उपकरण: किसी भी स्ट्रिंग में वर्णों के क्रम को उलटें
किसी भी पाठ में वर्णों के क्रम को तुरंत उलटें। अपनी सामग्री टाइप करें या पेस्ट करें और इस सरल पाठ उलटने वाले उपकरण के साथ वास्तविक समय में उलटा परिणाम देखें।
पाठ उलटने का उपकरण
नीचे पाठ दर्ज करें या चिपकाएँ ताकि स्वचालित रूप से अक्षरों का क्रम उलट सके। उलटा पाठ आपके टाइप करने के साथ नीचे दिखाई देगा।
दस्तावेज़ीकरण
पाठ उलटने का उपकरण
परिचय
पाठ उलटना एक सरल फिर भी शक्तिशाली स्ट्रिंग मैनिपुलेशन तकनीक है जो दिए गए पाठ में वर्णों के क्रम को उलट देती है। यह प्रक्रिया वर्णों के अनुक्रम को लेती है और एक नया अनुक्रम लौटाती है जिसमें वर्ण उल्टे क्रम में होते हैं। जबकि यह अवधारणा में सीधी है, पाठ उलटना कंप्यूटिंग, क्रिप्टोग्राफी और भाषाई विश्लेषण में कई अनुप्रयोगों का उपयोग करती है।
यहां प्रदान किया गया पाठ उलटने का उपकरण आपको किसी भी पाठ इनपुट को जल्दी से उलटने की अनुमति देता है। बस अपने पाठ को इनपुट क्षेत्र में टाइप या पेस्ट करें, और उपकरण स्वचालित रूप से उलटा परिणाम प्रदर्शित करेगा। यह सरल एन्कोडेड संदेश बनाने से लेकर पैलिंड्रोमिक संरचनाओं का विश्लेषण करने तक विभिन्न उद्देश्यों के लिए उपयोगी हो सकता है।
इस उपकरण का उपयोग कैसे करें
- अपने पाठ को इनपुट क्षेत्र में दर्ज या पेस्ट करें।
- उलटा पाठ स्वचालित रूप से परिणाम क्षेत्र में दिखाई देगा।
- उलटे पाठ को अपने क्लिपबोर्ड पर कॉपी करने के लिए कॉपी बटन का उपयोग करें।
उपकरण आपके इनपुट को वास्तविक समय में संसाधित करता है, इसलिए आप टाइप करते समय उलटा परिणाम देख सकते हैं।
सूत्र
पाठ उलटने की प्रक्रिया को एक ट्रांसफॉर्मेशन फ़ंक्शन के रूप में गणितीय रूप से दर्शाया जा सकता है जो एक इनपुट स्ट्रिंग को इसके उलटे रूप में मानचित्रित करता है:
एक स्ट्रिंग जिसकी लंबाई है और वर्ण , उलटी स्ट्रिंग है:
एल्गोरिदमिक दृष्टिकोण से, इसे कई तरीकों से लागू किया जा सकता है:
- एरे उलटना: स्ट्रिंग को वर्णों के एरे में परिवर्तित करें, एरे को उलटें, फिर वर्णों को वापस एक स्ट्रिंग में जोड़ें।
- दो-पॉइंटर तकनीक: स्ट्रिंग के विपरीत छोरों से दो पॉइंटर का उपयोग करें, जैसे-जैसे वे केंद्र की ओर बढ़ते हैं, वर्णों को स्वैप करें।
- स्टैक-आधारित दृष्टिकोण: सभी वर्णों को एक स्टैक में धकेलें, फिर उलटी स्ट्रिंग बनाने के लिए उन्हें बाहर निकालें।
पाठ उलटने की समय जटिलता है, जहां इनपुट स्ट्रिंग की लंबाई है, क्योंकि प्रत्येक वर्ण को एक बार ही संसाधित करने की आवश्यकता होती है। स्थान जटिलता भी है क्योंकि हमें उलटी स्ट्रिंग को संग्रहीत करने की आवश्यकता होती है।
गणना
पाठ उलटने का एल्गोरिदम इनपुट स्ट्रिंग को उलटे क्रम में पार करके एक नई स्ट्रिंग बनाने का कार्य करता है। प्रक्रिया के काम करने के तरीके का चरण-दर-चरण विवरण यहां दिया गया है:
- एक खाली परिणाम स्ट्रिंग प्रारंभ करें।
- इनपुट स्ट्रिंग के अंतिम वर्ण से शुरू करें, प्रत्येक वर्ण को परिणाम स्ट्रिंग में जोड़ें।
- तब तक जारी रखें जब तक इनपुट स्ट्रिंग का पहला वर्ण संसाधित नहीं हो जाता।
- परिणाम स्ट्रिंग लौटाएं।
उदाहरण के लिए, "Hello, World!" इनपुट दिया गया, तो एल्गोरिदम इस प्रकार प्रक्रिया करेगा:
- एक खाली परिणाम स्ट्रिंग के साथ शुरू करें: ""
- अंतिम वर्ण "!" को संसाधित करें: परिणाम = "!"
- अगले वर्ण "d" को संसाधित करें: परिणाम = "!d"
- अगले वर्ण "l" को संसाधित करें: परिणाम = "!dl"
- प्रत्येक वर्ण के लिए इस प्रक्रिया को जारी रखें
- अंतिम परिणाम: "!dlroW ,olleH"
एल्गोरिदम सभी प्रकार के वर्णों को संभालता है, जिसमें अक्षर, संख्या, प्रतीक और व्हाइटस्पेस शामिल हैं, और उन्हें उलटे आउटपुट में बनाए रखता है।
किनारे के मामले और विचार
पाठ उलटने का एल्गोरिदम कई किनारे के मामलों को संभालता है:
- खाली स्ट्रिंग: यदि इनपुट एक खाली स्ट्रिंग है, तो आउटपुट भी एक खाली स्ट्रिंग होगी।
- एकल वर्ण: यदि इनपुट में केवल एक वर्ण है, तो आउटपुट इनपुट के समान होगा।
- विशेष वर्ण और प्रतीक: सभी वर्ण, जिसमें विराम चिह्न, प्रतीक और व्हाइटस्पेस शामिल हैं, उलटे आउटपुट में बनाए रखे जाते हैं।
- यूनिकोड वर्ण: एल्गोरिदम यूनिकोड वर्णों, जिसमें इमोजी और गैर-लैटिन स्क्रिप्ट के वर्ण शामिल हैं, को सही ढंग से संभालता है।
- बहुत लंबे स्ट्रिंग: अत्यधिक लंबे इनपुट के लिए, एल्गोरिदम उलटी स्ट्रिंग को संग्रहीत करने के लिए उपलब्ध मेमोरी द्वारा सीमित हो सकता है।
उपयोग के मामले
पाठ उलटने के विभिन्न व्यावहारिक अनुप्रयोग हैं जो विभिन्न क्षेत्रों में फैले हुए हैं:
-
क्रिप्टोग्राफी और एन्कोडिंग: सरल पाठ उलटना एक बुनियादी एन्कोडिंग तकनीक के रूप में या अधिक जटिल एन्क्रिप्शन एल्गोरिदम के हिस्से के रूप में उपयोग किया जा सकता है।
-
प्रोग्रामिंग और एल्गोरिदम:
- पैलिंड्रोम की जांच करना (शब्द या वाक्यांश जो पीछे से आगे पढ़ने पर समान होते हैं)
- स्ट्रिंग मैनिपुलेशन व्यायाम और चुनौतियाँ
- स्टैक डेटा संरचनाएँ लागू करना
-
शब्द खेल और पहेलियाँ:
- ऐसे शब्द पहेलियाँ बनाना जहाँ खिलाड़ियों को उलटे शब्दों की पहचान करनी होती है
- खेलों या रचनात्मक लेखन के लिए "पीछे की भाषा" उत्पन्न करना
-
पाठ विश्लेषण:
- उलटे पाठ में भाषाई पैटर्न का अध्ययन करना
- लिखित भाषा में समरूपता का विश्लेषण करना
-
शिक्षण उपकरण:
- बुनियादी स्ट्रिंग मैनिपुलेशन अवधारणाओं को सिखाना
- एल्गोरिदमिक सोच को प्रदर्शित करना
-
रचनात्मक लेखन:
- कलात्मक उद्देश्यों के लिए मिरर लेखन या उलटे पाठ बनाना
- काल्पनिक पात्रों के लिए पीछे के संवाद उत्पन्न करना
विकल्प
हालांकि वर्ण-दर-वर्ण उलटना पाठ उलटने का सबसे सामान्य रूप है, कुछ विशिष्ट अनुप्रयोगों के लिए अधिक उपयुक्त वैकल्पिक दृष्टिकोण हो सकते हैं:
-
शब्द उलटना: शब्दों के क्रम को उलटते हुए प्रत्येक शब्द के भीतर वर्णों के क्रम को बनाए रखना।
- उदाहरण: "Hello World" → "World Hello"
-
वाक्य उलटना: वाक्यों के क्रम को उलटते हुए प्रत्येक वाक्य के भीतर शब्दों के क्रम को बनाए रखना।
- उदाहरण: "Hello World. How are you?" → "How are you? Hello World."
-
आंशिक उलटना: पाठ के केवल विशिष्ट भागों को कुछ मानदंडों के आधार पर उलटना।
- उदाहरण: केवल स्वर, केवल व्यंजन, या केवल एक निश्चित लंबाई के शब्दों को उलटना
-
ध्वन्यात्मक उलटना: लिखित वर्णों के बजाय ध्वन्यात्मक ध्वनियों को उलटना (भाषाई अध्ययन में उपयोग किया जाता है)।
-
बिट-स्तरीय उलटना: पाठ के बाइनरी प्रतिनिधित्व को उलटना (कुछ क्रिप्टोग्राफिक अनुप्रयोगों में उपयोग किया जाता है)।
इतिहास
पाठ उलटने की अवधारणा का एक समृद्ध इतिहास है जो विभिन्न संस्कृतियों और अनुशासनों में फैला हुआ है:
प्राचीन मूल
पाठ उलटने का अभ्यास हजारों वर्षों से किया जा रहा है। प्राचीन सभ्यताएँ जैसे कि मिस्रवासी और ग्रीक कभी-कभी "बौस्त्रोफेडन" शैली में लिखते थे, जहाँ वैकल्पिक पाठ की पंक्तियाँ विपरीत दिशाओं में चलती थीं। लियोनार्डो दा विंची ने अपने नोटबुक में मिरर लेखन (पाठ उलटने का एक रूप) का उपयोग किया, संभवतः कोडिंग के रूप में या केवल इसलिए क्योंकि वह बाएं हाथ का था।
कंप्यूटिंग युग
कंप्यूटिंग के प्रारंभिक दिनों में, स्ट्रिंग मैनिपुलेशन ऑपरेशंस जैसे कि उलटना मौलिक प्रोग्रामिंग व्यायाम थे। जैसे-जैसे प्रोग्रामिंग भाषाएँ विकसित हुईं, स्ट्रिंग उलटने के लिए अंतर्निहित फ़ंक्शन मानक पुस्तकालयों में सामान्य विशेषताएँ बन गईं।
पाठ उलटने की अवधारणा ने कंप्यूटर विज्ञान में स्टैक डेटा संरचनाओं के विकास के साथ विशेष महत्व प्राप्त किया, जो 1950 और 1960 के दशक में हुआ। स्टैक का लास्ट-इन-फर्स्ट-आउट (LIFO) व्यवहार स्वाभाविक रूप से उलटे आउटपुट का उत्पादन करता है, जिससे यह पाठ उलटने की समस्याओं के लिए एक सुरुचिपूर्ण समाधान बन जाता है।
आधुनिक अनुप्रयोग
आधुनिक कंप्यूटिंग में, पाठ उलटने के एल्गोरिदम का उपयोग विभिन्न अनुप्रयोगों में किया जाता है:
- कंपाइलर और इंटरप्रेटर: पार्सिंग और सिंटैक्स विश्लेषण में उपयोग किया जाता है।
- डेटा संकुचन: कुछ संकुचन एल्गोरिदम उलटने की तकनीकों का उपयोग करते हैं।
- क्रिप्टोग्राफी: अधिक जटिल एन्क्रिप्शन योजनाओं के घटक के रूप में।
- प्राकृतिक भाषा प्रसंस्करण: भाषाई पैटर्न और संरचनाओं का विश्लेषण करने के लिए।
पाठ उलटने की सरलता और उपयोगिता ने इसकी निरंतर प्रासंगिकता सुनिश्चित की है।
उदाहरण
यहां विभिन्न प्रोग्रामिंग भाषाओं में पाठ उलटने के कोड उदाहरण दिए गए हैं:
1' Excel VBA फ़ंक्शन पाठ उलटने के लिए
2Function InvertText(inputText As String) As String
3 Dim i As Integer
4 Dim result As String
5
6 result = ""
7 For i = Len(inputText) To 1 Step -1
8 result = result & Mid(inputText, i, 1)
9 Next i
10
11 InvertText = result
12End Function
13' एक सेल में उपयोग:
14' =InvertText("Hello, World!")
15
1def invert_text(input_text):
2 """एक स्ट्रिंग में वर्णों के क्रम को उलटें।"""
3 return input_text[::-1]
4
5# उदाहरण उपयोग:
6original_text = "Hello, World!"
7inverted_text = invert_text(original_text)
8print(f"मूल: {original_text}")
9print(f"उलटा: {inverted_text}")
10
11# यूनिकोड वर्णों को संभालना
12unicode_text = "こんにちは世界! 🌍"
13inverted_unicode = invert_text(unicode_text)
14print(f"मूल यूनिकोड: {unicode_text}")
15print(f"उलटा यूनिकोड: {inverted_unicode}")
16
1function invertText(inputText) {
2 return inputText.split('').reverse().join('');
3}
4
5// उदाहरण उपयोग:
6const originalText = "Hello, World!";
7const invertedText = invertText(originalText);
8console.log(`मूल: ${originalText}`);
9console.log(`उलटा: ${invertedText}`);
10
11// खाली स्ट्रिंग को संभालना
12console.log(`खाली स्ट्रिंग उलटी: "${invertText("")}"`);
13
14// यूनिकोड को संभालना
15const unicodeText = "こんにちは世界! 🌍";
16console.log(`मूल यूनिकोड: ${unicodeText}`);
17console.log(`उलटा यूनिकोड: ${invertText(unicodeText)}`);
18
1public class TextInverter {
2 public static String invertText(String inputText) {
3 return new StringBuilder(inputText).reverse().toString();
4 }
5
6 public static void main(String[] args) {
7 String originalText = "Hello, World!";
8 String invertedText = invertText(originalText);
9
10 System.out.println("मूल: " + originalText);
11 System.out.println("उलटा: " + invertedText);
12
13 // यूनिकोड वर्णों को संभालना
14 String unicodeText = "こんにちは世界! 🌍";
15 String invertedUnicode = invertText(unicodeText);
16 System.out.println("मूल यूनिकोड: " + unicodeText);
17 System.out.println("उलटा यूनिकोड: " + invertedUnicode);
18 }
19}
20
1invert_text <- function(input_text) {
2 # वर्णों के एरे में परिवर्तित करें, उलटें, और एकत्रित करें
3 paste(rev(strsplit(input_text, "")[[1]]), collapse = "")
4}
5
6# उदाहरण उपयोग
7original_text <- "Hello, World!"
8inverted_text <- invert_text(original_text)
9cat("मूल:", original_text, "\n")
10cat("उलटा:", inverted_text, "\n")
11
1function invertedText = invertText(inputText)
2 % एक स्ट्रिंग में वर्णों के क्रम को उलटने के लिए फ़ंक्शन
3 invertedText = inputText(end:-1:1);
4end
5
6% उदाहरण उपयोग
7originalText = 'Hello, World!';
8invertedText = invertText(originalText);
9fprintf('मूल: %s\n', originalText);
10fprintf('उलटा: %s\n', invertedText);
11
1#include <iostream>
2#include <string>
3#include <algorithm>
4
5std::string invertText(const std::string& inputText) {
6 std::string result = inputText;
7 std::reverse(result.begin(), result.end());
8 return result;
9}
10
11int main() {
12 std::string originalText = "Hello, World!";
13 std::string invertedText = invertText(originalText);
14
15 std::cout << "मूल: " << originalText << std::endl;
16 std::cout << "उलटा: " << invertedText << std::endl;
17
18 // खाली स्ट्रिंग को संभालना
19 std::cout << "खाली स्ट्रिंग उलटी: \"" << invertText("") << "\"" << std::endl;
20
21 return 0;
22}
23
1def invert_text(input_text)
2 input_text.reverse
3end
4
5# उदाहरण उपयोग
6original_text = "Hello, World!"
7inverted_text = invert_text(original_text)
8puts "मूल: #{original_text}"
9puts "उलटा: #{inverted_text}"
10
11# यूनिकोड वर्णों को संभालना
12unicode_text = "こんにちは世界! 🌍"
13inverted_unicode = invert_text(unicode_text)
14puts "मूल यूनिकोड: #{unicode_text}"
15puts "उलटा यूनिकोड: #{inverted_unicode}"
16
1<?php
2function invertText($inputText) {
3 return strrev($inputText);
4}
5
6// उदाहरण उपयोग
7$originalText = "Hello, World!";
8$invertedText = invertText($originalText);
9echo "मूल: $originalText\n";
10echo "उलटा: $invertedText\n";
11
12// यूनिकोड वर्णों को संभालना
13$unicodeText = "こんにちは世界! 🌍";
14$invertedUnicode = invertText($unicodeText);
15echo "मूल यूनिकोड: $unicodeText\n";
16echo "उलटा यूनिकोड: $invertedUnicode\n";
17?>
18
1fn invert_text(input_text: &str) -> String {
2 input_text.chars().rev().collect()
3}
4
5fn main() {
6 let original_text = "Hello, World!";
7 let inverted_text = invert_text(original_text);
8
9 println!("मूल: {}", original_text);
10 println!("उलटा: {}", inverted_text);
11
12 // यूनिकोड वर्णों को संभालना
13 let unicode_text = "こんにちは世界! 🌍";
14 let inverted_unicode = invert_text(unicode_text);
15 println!("मूल यूनिकोड: {}", unicode_text);
16 println!("उलटा यूनिकोड: {}", inverted_unicode);
17}
18
1using System;
2
3class TextInverter
4{
5 public static string InvertText(string inputText)
6 {
7 char[] charArray = inputText.ToCharArray();
8 Array.Reverse(charArray);
9 return new string(charArray);
10 }
11
12 static void Main()
13 {
14 string originalText = "Hello, World!";
15 string invertedText = InvertText(originalText);
16
17 Console.WriteLine($"मूल: {originalText}");
18 Console.WriteLine($"उलटा: {invertedText}");
19
20 // खाली स्ट्रिंग को संभालना
21 Console.WriteLine($"खाली स्ट्रिंग उलटी: \"{InvertText("")}\"");
22
23 // यूनिकोड वर्णों को संभालना
24 string unicodeText = "こんにちは世界! 🌍";
25 string invertedUnicode = InvertText(unicodeText);
26 Console.WriteLine($"मूल यूनिकोड: {unicodeText}");
27 Console.WriteLine($"उलटा यूनिकोड: {invertedUnicode}");
28 }
29}
30
1package main
2
3import (
4 "fmt"
5)
6
7func invertText(inputText string) string {
8 runes := []rune(inputText)
9 for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
10 runes[i], runes[j] = runes[j], runes[i]
11 }
12 return string(runes)
13}
14
15func main() {
16 originalText := "Hello, World!"
17 invertedText := invertText(originalText)
18
19 fmt.Printf("मूल: %s\n", originalText)
20 fmt.Printf("उलटा: %s\n", invertedText)
21
22 // यूनिकोड वर्णों को संभालना
23 unicodeText := "こんにちは世界! 🌍"
24 invertedUnicode := invertText(unicodeText)
25 fmt.Printf("मूल यूनिकोड: %s\n", unicodeText)
26 fmt.Printf("उलटा यूनिकोड: %s\n", invertedUnicode)
27}
28
1func invertText(_ inputText: String) -> String {
2 return String(inputText.reversed())
3}
4
5// उदाहरण उपयोग
6let originalText = "Hello, World!"
7let invertedText = invertText(originalText)
8
9print("मूल: \(originalText)")
10print("उलटा: \(invertedText)")
11
12// यूनिकोड वर्णों को संभालना
13let unicodeText = "こんにちは世界! 🌍"
14let invertedUnicode = invertText(unicodeText)
15print("मूल यूनिकोड: \(unicodeText)")
16print("उलटा यूनिकोड: \(invertedUnicode)")
17
प्रदर्शन विचार
पाठ उलटने के साथ काम करते समय कुछ प्रदर्शन विचारों को ध्यान में रखना आवश्यक है:
-
मेमोरी उपयोग: बहुत लंबे स्ट्रिंग के लिए, उलटी कॉपी बनाना अतिरिक्त मेमोरी की आवश्यकता करता है जो इनपुट की लंबाई के समान होती है।
-
इन-प्लेस उलटना: कुछ भाषाएँ वर्णों के एरे का इन-प्लेस उलटना करने की अनुमति देती हैं, जो अधिक मेमोरी-कुशल हो सकती हैं लेकिन अपरिवर्तनीय स्ट्रिंग प्रकारों के लिए लागू नहीं हो सकती हैं।
-
यूनिकोड हैंडलिंग: मल्टी-बाइट यूनिकोड वर्णों के साथ स्ट्रिंग्स को उलटना करते समय सही हैंडलिंग की आवश्यकता होती है ताकि वर्ण एन्कोडिंग को भ्रष्ट न किया जा सके।
-
स्ट्रीमिंग बनाम बफरिंग: अत्यधिक लंबे पाठ के लिए, एक स्ट्रीमिंग दृष्टिकोण जो वर्णों को क्रमिक रूप से संसाधित और आउटपुट करता है, बफरिंग की तुलना में अधिक कुशल हो सकता है।
-
पैराललाइजेशन: बहुत लंबे स्ट्रिंग के लिए, उलटने की प्रक्रिया को तेज करने के लिए समानांतर प्रसंस्करण तकनीकों का उपयोग किया जा सकता है, हालांकि इससे अतिरिक्त जटिलता उत्पन्न होती है।
संदर्भ
-
Knuth, D. E. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd ed.). Addison-Wesley Professional.
-
Sedgewick, R., & Wayne, K. (2011). Algorithms (4th ed.). Addison-Wesley Professional.
-
"String (computer science)." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/String_(computer_science). Accessed 2 Aug. 2024.
-
"Palindrome." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Palindrome. Accessed 2 Aug. 2024.
-
"Mirror writing." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Mirror_writing. Accessed 2 Aug. 2024.
प्रतिक्रिया
इस उपकरण के बारे में प्रतिक्रिया देने के लिए प्रतिक्रिया टोस्ट पर क्लिक करें
संबंधित उपकरण
अधिक उपकरणों का पता लगाएँ जो आपके कार्यप्रवाह के लिए उपयोगी हो सकते हैं