Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
Cool!
no you havnt ur blind
Got it, you're right! Thx! 🙏🏻
However, test cases do not test Unicode, only ASCII.
"Never do that!" sounds extreme. The intention of Kumite is to challenge and not repeat past solutions.
This was to similar to the previous 🤷🏻
Because Unicode
Because Unicode
TRUE! I've seen it on a map. 🔭😏
you are wrong because the earht is flat
Boxing won't occur here.
char.IsUpper
takes achar
and returns abool
.bool
(orSystem.Boolean
) has aEquals(bool)
override, so the compiler won't choose theObject.Equals(Object)
method.Using
==
is still better practice, though, asEquals
), though the I'm nearly positivebool.Equals(bool)
would be inlinedThe ValueType class that all structs implicitly inherit don't have a generic implementation so only the object base class' .Equals method is implemented, meaning you'll have to go through expensive boxing for a simple comparison. This can even involve reflection
See here https://source.dot.net/#System.Private.CoreLib/src/System/ValueType.cs
Fortunately, seemingly all value types provided by .NET implement their own .Equals method to avoid boxing. So do record structs
Fixed.
Task description for C language contains an error in the given example. The length of the array is 23, not 20.
First letter check, after it case check. Then you don't need IsUpper.
public static int SameCase(char a, char b) =>
!(Char.IsLetter(a) && Char.IsLetter(b)) ? -1 : (Char.IsLower(a) == Char.IsLower(b) ? 1 : 0);
I like your point about matching the letter cases, but the initial problem assumes there will be tests without letters (i.e. Kata.SameCase( 'a', '~') ) for which you should output '-1'.
If you are calling this function you are working on letters so don't bother checking for that. You also can use
==
instead of checking for true values since technically two false values would suffice as well (meaning that both letters are uppercase).