Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # का उपयोग करके किसी दिए गए स्ट्रिंग में किसी वर्ण से कम से कम दूरी कैसे प्राप्त करें?

2 अलग-अलग सरणियाँ बनाएँ लेफ्टडिस और राइटडिस। बाईं दिशा से ले जाने पर लेफ्टडिस वैल्यू को स्टोर करेगा। दाईं ओर से ले जाने पर राइटडिस सबसे छोटा मान संग्रहीत करेगा। जब भी चरित्र मिलता है तो चरित्र की स्थिति को सरणी में जोड़ें। अंतिम चरण में दोनों सरणियों की न्यूनतम गणना करें।

समय की जटिलता -ओ(एन)

अंतरिक्ष जटिलता -ओ(एन)

उदाहरण

public class Arrays{
   public int[] ShortestDistanceToCharacter(string s, char c){
      int stringLength = s.Length;
      int[] leftDis = new int[s.Length];
      int[] rightDis = new int[s.Length];
      leftDis = Enumerable.Range(0, s.Length).Select(n => int.MinValue).ToArray();
      rightDis = Enumerable.Range(0, s.Length).Select(n => int.MaxValue).ToArray();
      int count = int.MaxValue;
      for (int i = 0; i < rightDis.Length; i++){
         if (s[i] == c){
            count = 0;
            rightDis[i] = count;
         }
         else{
            if (count != int.MaxValue){
               count++;
               rightDis[i] = count;
            }
         }
      }
      count = int.MaxValue;
      for (int i = leftDis.Length - 1; i >= 0; i--){
         if (s[i] == c){
            count = 0;
            leftDis[i] = count;
         }
         else{
            if (count != int.MaxValue){
               count++;
               leftDis[i] = count;
            }
         }
      }
      int[] ans = new int[stringLength];
      for (int i = 0; i < stringLength - 1; i++){
         ans[i] = Math.Min(leftDis[i], rightDis[i]);
      }
      return ans;
   }
}

static void Main(string[] args){
   Arrays s = new Arrays();
   string ss = "lovecode";
   char c = 'e';
   var res = s.ShortestDistanceToCharacter(ss, c);
   foreach (var item in res){
      Console.WriteLine(item);
   }
}

आउटपुट

[3,2,1,0,1,2,1,0]

  1. जावा में किसी दिए गए चरित्र के लिए यूनिकोड श्रेणी कैसे खोजें?

    एक चरित्र वर्ग एक ऑब्जेक्ट . का उपवर्ग है और यह किसी वस्तु में आदिम प्रकार के चार का मान लपेटता है। कैरेक्टर प्रकार के ऑब्जेक्ट में एक ही फ़ील्ड होता है जिसका प्रकार char . होता है . हम getType() . का उपयोग करके किसी विशेष वर्ण के लिए यूनिकोड श्रेणी निर्धारित कर सकते हैं तरीका। यह चरित्र . की एक

  1. पायथन का उपयोग करके दी गई संख्या में अंकों की संख्या कैसे ज्ञात करें?

    इस प्रोग्राम में, हमें उपयोगकर्ता द्वारा दिए गए पूर्णांक में अंकों की संख्या ज्ञात करनी होती है। उदाहरण के लिए उपयोगकर्ता इनपुट:123, आउटपुट:3 उपयोगकर्ता इनपुट:1987, आउटपुट:4 एल्गोरिदम Step 1: Take Integer value as input value from the userStep 2: Divide the number by 10 and convert the quotient in

  1. पायथन रेगेक्स का उपयोग करके किसी दिए गए स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो regexes का उपयोग करके एक स्ट्रिंग में 1(0+1) की सभी घटनाओं को ढूंढता है। . हमारे पास पायथन में एक री मॉड्यूल है जो हमें रेगुलर एक्सप्रेशन के साथ काम करने में मदद करता है। आइए एक नमूना मामला देखें। Input: string = "Sample 1(0+)1 string with