برنامه نویسی

الگوی کلمه – LeetCode – جاوا

Word Pattern مشکلی است که با استفاده از آن حل می شود هاشمپ

بیایید برای درک بهتر سوال به چند مثال نگاهی بیندازیم.

مثال 1:

ورودی: الگو = “abba”، s = “سگ گربه گربه سگ”
خروجی: درست
توضیح: «الف» با سگ و «ب» با گربه ترسیم شده است

مثال 2:

ورودی: الگو = “عبا”، s = “گربه سگ گربه ماهی”
خروجی: نادرست
توضیح: a -> سگ
ب -> گربه
a -> ماهی (از آنجایی که ‘a’ قبلاً با سگ ترسیم شده است و نمی توان از آن برای نقشه برداری مجدد با برخی استفاده کرد رشته دیگر. بنابراین، نتیجه نادرست است)

مثال 3: (یک مورد آزمایشی مهم)

ورودی: الگو = “عبا”، s = “سگ سگ سگ”
خروجی: نادرست
توضیح: a -> سگ
ب -> سگ
(از آنجایی که “a” با سگ نگاشت می شود و “b” نیز نقشه برداری از همان رشته. بنابراین، نتیجه نادرست است)

کد

class Solution {
    public boolean wordPattern(String pattern, String s) {

        String arr[] = s.split(" ");
        int n = arr.length;

        if(pattern.length()!=n)
            return false;

        Map<Character, String> map = new HashMap<>();

        for(int i=0; i<n; i++){
            char ch = pattern.charAt(i);

            if(map.containsKey(ch) && !(map.get(ch).equals(arr[i])))
                return false;

            if(!map.containsKey(ch) && map.containsValue(arr[i]))
                return false;

            map.put(ch, arr[i]);
        }

        return true;
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ممنون که خواندید🥰.
کامنت بذارید و پست رو لایک کنید💓
برای اطلاعات بیشتر دنبال کنید 🤝 & & Happy Coding🚀👩‍💻

فراموش نکنید که سایر شبکه های اجتماعی من را بررسی کنید:
Github
هشتگ
متوسط
توییتر (X)

نوشته های مشابه

دکمه بازگشت به بالا