Given three Strings, str1, str2 and str3, return the longest String. If all three Strings have the same length, return "same". There will not be a tie between two longest Strings.

longestString("apple", "banana", "pear") → "banana"
longestString("one", "two", "three") → "three"
longestString("bob", "jim", "joe") → "same"

To find the longest string among three given strings, you can follow these steps:

1. Compare the lengths of the three strings.
2. If the length of all three strings is the same, return "same".
3. If any two strings have the same length but it is greater than the length of the third string, return "same".
4. If none of the above conditions are met, compare the lengths of all three strings and return the longest string.

Here's the code implementation for this problem:

```python
def longestString(str1, str2, str3):
if len(str1) == len(str2) and len(str1) == len(str3):
return "same"
elif len(str1) >= len(str2) and len(str1) >= len(str3):
return str1
elif len(str2) >= len(str1) and len(str2) >= len(str3):
return str2
else:
return str3
```

Let's test the provided examples:

```python
print(longestString("apple", "banana", "pear")) # Output: "banana"
print(longestString("one", "two", "three")) # Output: "three"
print(longestString("bob", "jim", "joe")) # Output: "same"
```

The first example has the longest string "banana", so the output is "banana". The second example has the longest string "three", so the output is "three". The third example has all three strings with the same length, so the output is "same".