> For the complete documentation index, see [llms.txt](https://jaywin.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jaywin.gitbook.io/leetcode/solutions/1258-synonymous-sentences.md).

# 1258. Synonymous Sentences

<https://leetcode.com/problems/synonymous-sentences>

## Description

You are given a list of equivalent string pairs `synonyms` where `synonyms[i] = [si, ti]` indicates that `si` and `ti` are equivalent strings. You are also given a sentence `text`.

Return *all possible synonymous sentences **sorted lexicographically***.

**Example 1:**

```
**Input:**synonyms = [["happy","joy"],["sad","sorrow"],["joy","cheerful"]],
text = "I am happy today but was sad yesterday"
**Output:**["I am cheerful today but was sad yesterday",
"I am cheerful today but was sorrow yesterday",
"I am happy today but was sad yesterday",
"I am happy today but was sorrow yesterday",
"I am joy today but was sad yesterday",
"I am joy today but was sorrow yesterday"]
```

**Example 2:**

```
**Input:** synonyms = [["happy","joy"],["cheerful","glad"]], text = "I am happy today but was sad yesterday"
**Output:** ["I am happy today but was sad yesterday","I am joy today but was sad yesterday"]
```

**Example 3:**

```
**Input:** synonyms = [["a","b"],["c","d"],["e","f"]], text = "a c e"
**Output:** ["a c e","a c f","a d e","a d f","b c e","b c f","b d e","b d f"]
```

**Example 4:**

```
**Input:** synonyms = [["a","QrbCl"]], text = "d QrbCl ya ya NjZQ"
**Output:** ["d QrbCl ya ya NjZQ","d a ya ya NjZQ"]
```

**Constraints:**

* `0 <= synonyms.length <= 10`
* `synonyms[i].length == 2`
* `1 <= si.length,ti.length <= 10`
* `si != ti`
* `text` consists of at most `10` words.
* The words of `text` are separated by single spaces.

## ac

```java
```
